1.第一关:
payload:?name=<script>alert(/xss/)</script>
<script></script>就是js代码的一个标志,浏览器会根据他,把这段代码当作js代码执行
alert触发弹框操作,这句话是验证xss漏洞是否存在的代码。
2.第二关:
提供一个检验是否含有过滤关键字符的代码:
<script ' "/\ Oonn>
当作参数内容提交之后查看源代码:
发现啥也没过滤,在我们提交的<script '"/\ Oonn>后面他自动加了一个">说明他要双引号闭合,而且input标签也要保持完整,所以我们提交:
payload:"><script>alert(/xss/)</script>
如果不手动闭合input标签(输入:"<script>alert(/xss/)</script),他就默认value的值是我们输入的所有内容,就默认在最后闭合,此时他会自动加上">,就会导致我们的xss不正确如下图:
所以我们要自己手动闭合。
3.第三关:
还是先提交:<script ' "/\ Oonn>查看源代码:
发现他是单引号闭合,后面自动加了一个’>,所以构造payload:'><script>alert(/xss/)</script>
但是没有成功查看源代码发现,他把>转码了,无法正常闭合,所以我们采取不用>的xss代码:mouse事件触发,由鼠标悬停触发的事件,这里不要忘记单引号闭合的事情,所以构造
payload:'οnmοuseοver='alert(/xss/) 此时alert执行的原因是触发了mouse事件。当鼠标放到输入框上时弹出:完成的不错!
这一题未闭合input标签是因为我们需要执行的代码里面不需要保证尖括号闭合的事情,所以这个参数自动加上的>对我们没有影响。
4.第四关:
还是先提交:<script ' "/\ Oonn>查看源代码:
发现:双引号闭合,发现过滤>,所以和上题一样的思路,只不过是双引号闭合,构造payload:"οnmοuseοver="alert(/xss/)
5.第五关:
还是先提交:<script ' "/\ Oonn>查看源代码:
发现双引号闭合,script on被中间被添加了一个_,而且对大写敏感,我们尝试:<script script ' "/\ Oonn>
发现第二个script是正常的,然后构造payload:"><script script>alert(/xss/)</script>,没成功。
虽然第二个script正常了,但是这个xss代码无法正常执行了,使用另外一种方法,使用javascript伪协议构造的方法, 输入:<a href ="javascript:alert(/xss/)">touch me!</a>
这时没有闭合input标签,不能嵌套a标签和input标签,这会导致<a></a>无法正常执行
payload:"><a href ="javascript:alert(/xss/)">touch me!</a>
点一下touch me就可以了。
我们先不点查看源代码:
这里的value值被闭合了,虽然系统还会自动在最后加上">,但是因为不完整,在这里没有影响了,返回点击touch me通关吧。
6.第六关
还是先提交:<script ' "/\ Oonn>查看源代码:
和上一题有一点不一样,就是对大小写不敏感,提交"><a href ="javascript:alert(/xss/)">touch me!</a>,没成功,查看源代码:
这一题把href里面添加了下划线,想想href能不能绕过,那就用一下大写吧,提交成功
payload:"><a hREf="javascript:alert(/xss/)">touch me!</a>
以上内容若有错误,欢迎指正(部分参考千峰教育)