XSS靶场
作者:互联网
第一关
利用语句进行弹窗测试就可以<script>alert(1)</script>
第二关
可以发现本题依然是根据GET传参数,查看源代码
这是一个value进行输入,使用js恶意代码拼接
构造payload:"/><script>alert(2)</script>//
xss秘籍第三式(绕函弹)
根据流程来:
一、查看页面,任然是GET型,都是GET型哪有什么区别呢,查看源代码查看
仍然是value输入,但是这次是空的值,仍然进行js恶意代码输入
没有弹窗,构造payload,还是没有反应"/><img src=# one rror=alert(1)/>//
为什么都用不了!!!
大概是后端使用了**htmlspecialchars**
函数进行过滤,因此我们可以使用不带有尖括号的特殊字符进行尝试:' onm ouseover='javascript:alert(1)
至于为什么要使用'
这是因为<input type='text' value=' ' onm ouseover=' javascript:alert(1)'>
只有使用单引号,转换出来的'
才有意义
xss秘籍第四式(构绕函弹)
这是我们再拿第三关的payload进行尝试我们发现已经没有任何作用
老样子查看一下源代码,我也没有发现什么。。。。看一下大佬们的解释
让我们跟着思路走下去
构造payload:1、
2、 "onmouseover='alert(1)'
这不就可以了嘛
xss秘籍第五关 (闭新java弹)
是不是跟第四关差不多嘞,但是这可是第五关呐!!!啊这,肯定比第四关更难吧
问题不大,让我们先用第四关的方法进行尝试
可以发现,这里闭合了on,尝试大小写绕过
还是仍然对on产生了绕过,尝试编码
发现编码也不行…
既然都不行,就回到最处思考使用<>操作
构造payload:"/><a href="javascript:alert(1)"/>
![image.png](https://www.icode9.com/i/ll/?i=img_convert/4f5720544f8c59299d03732b872da826.png#align=left&display=inline&height=408&margin=[object Object]&name=image.png&originHeight=816&originWidth=1492&size=112763&status=done&style=none&width=746)
似乎什么也没有,又似乎发现了什么!!
似乎发现了被单独弥留下来的一个超链接版的xss代码,我们点击进行尝试,很不错,这个链接尽然弹出了xss代码
xss秘籍第六关(大小写)
还是先使用上一关的payload
查看一下源代码
可见是过滤了href,在这里使用的是大小写进行过滤:" /> <a Href="javascript:alert(1)"/>
完成了
xss秘籍第七关(重复写)
老方法,上一关payload进行尝试
value什么也没有输出,可见是被过滤了,我们换个关键词试试"/><img src='javascript:alert(1)'>//
这应该是对关键词进行了过滤操作,也就不能使用SRC、herf等一些关键词出发xss的恶意js,是否可以使用不用到这些都标签构造payload。。
But…连script标签也被过滤的,这就让人很头大!!
那么现在需要考虑如何进行script
绕过,就是我们需要解决的事情了,先尝试大小写"/><Script>alert(xss)</Script>//<
可见还是被过滤了
没关系,绕过的方式很多,再尝试重复进行尝试"/><ScrscriptipT>alert("xss")</ScriscriptPT>//<
哦豁,小心机
xss秘籍第八关(DOM)
要添加友情链接,这一关很可能属于DOM型xss,因此需要根据友情链接进行恶意js构造
这样我们又回到了第五关了:javascript:alert(1)
一个小知识点
![image.png](https://www.icode9.com/i/ll/?i=img_convert/e927b5f56f9f9f4996fd3513c87d009b.png#align=left&display=inline&height=421&margin=[object Object]&name=image.png&originHeight=841&originWidth=1364&size=166737&status=done&style=none&width=682)
javascript被过滤了,尝试绕过老样子:大小写、重复
都不行,怎么呢,也不能替换,小问题
还可以对关键词进行编码,在这里我们使用16进制进行编码,至于其他编码方式也是可以的javascript:alert(1)
这不就好了
xss秘籍第九关(代码审计)
到了这一关就不仅仅是对源代码进行分析了,找到文件的php代码进行审计
尝试进行弹窗"/><a href='javascript:alert(1)'/>
查看源文件并没有发现什么,这一关不知道为什么好卡!!应该是出了什么问题,去看一下大佬们的笔记
发现这是一个对https://
字符的操作,不能出现https字样,只能是**http:// ** 这几个字符,不然就会返回链接不合法
因此构造payload时只需要出现http:// 的字样,并且在尝试过程中,对script进行了过滤,所以我么根据上一关的经验去构造javascript:alert(1)//http://www.san.com
这样就成功了,至于后面的链接,随意根据格式写就可以
xss秘籍第十关(改类型)
可能有隐藏的表单,尝试提交t_link、t_history、t_sort变量,t_sort变量返回在了html的value中,但是过滤了尖括号
也就是存在get参数又隐藏框,经尝试t_sort存在
而剩下的两个参数则不存在
type是为了让页面展现出一个输入框,一点击就会弹出alert
构造payload:123&t_sort="type="text" onclick="alert(1)
(输入的文本都无法显示,这里只能改变一下keyword的类型,type=text)
今天就到这里了
总结
标签:尝试,XSS,xss,秘籍,alert,过滤,靶场,payload 来源: https://blog.csdn.net/weixin_51706044/article/details/120533225