XSS闯关小游戏

一个20关的XSS小游戏,巩固基础。下载链接:http://www.au1ge.xyz/downloads/xss源码小游戏.zip

XSS游戏与SQL注入的练习最大的不同就是SQL的练习基本与实战相同,最后的目的都是从数据库中得到数据,但是XSS游戏一般只需要弹个框,这导致了就算XSS游戏完成的很好在实战中也经常会懵比,javascript作为一门热门语言,其变化会比sql多得多,因此,最根本的还是javascript,javascript,javascript!!!

level 1

什么都没过滤

level 2

直接插入发现

闭合绕过

level 3

同上

level 4

过滤<>,插入在input内,调用事件

level 5

过滤on事件,过滤script,没过滤<>

用<a href>

level 6

考虑构造一个测试payload方便判断。

事件被过滤,href被过滤,img没被过滤

用大小写

level 7

测试得到

双写绕过

level 8

测试得到

输出点在href内,直接写入javascript:alert(1)被过滤,大小写无法绕过

实体编码,unicode,十六进制不行,HTML可以    //因为输出点在html标签内,js编码无效

level 9

测试payload显示链接不合法,进一步发现需要http://才会显示测试结果:

同上题,把alert(1)改成alert(‘http://’)即可。

level 10

测试payload已经无法返回结果,查看源码发现有三个隐藏的Input,给三个参数提交我们的测试payload,发现t_sort处有回显:

过滤了<>,直接用事件构造

level 11

四个隐藏参数,还是t_sort处有回显:

被转义,并且无法闭合。

没办法,审计之

发现还有个参数是从user-agent处得到的,并且过滤了<>

。。。。。