玩个闯关小游戏
昨天中午睡了一觉,一个朋友邀请我来玩一个闯关游戏,发过来一看是一个xss闯关小游戏,虽然早有耳闻,但是说实话一次也没玩过;正好下午没什么事情,就玩玩这个游戏,就当打发时间了..(纯玩玩,毕竟不能耽误我刷抖音😊)
第一关
毕竟第一关,估计最简单,总不能在第一关的boss都打不出血吧,直接看源码
果然所有符号都没过滤,也没有转义,那不直接上payload
1 | |
第二关
在输入框中输入测试语句(如下,后面都用这个做测试)可以看到输入框中没有显示出双引号,此处语句应该是被双引号闭合
1 | |
通过观察源码,可以看到输入的参数是被双引号闭合着带入到input标签中
所以需要在开头构造一个”>把签名input标签闭合掉,在结尾构造一个”<把input剩下的尖括号闭合即可
1 | |
第三关
在输入框中输入测试语句,输入框的内容里没有单引号,此处语句应该是被单引号闭合
观察源码可知,大小于号和双引号被转义,但是单引号没有被转义且参数是用单引号闭合的
由于大于号被转义,我们需要使用哪些不需要用到标签的语句来触发XSS漏洞比如说用事件触发的形式,同时使用单引号来闭合
1 | |
第四关
在输入框中输入测试语句,发现搜索框里没有小于号,估计是被转义了,内容也是到script截止,说明内容是由双引号闭合的
在网页源代码第17行中可以发现,大小于号已被过滤,引号没有被过滤或转义,参数采用的是双引号的闭合方式
payload
1 | |
第五关
在输入框中输入测试语句,发现在r与i之间多了一个_符号,猜测是关键字被转义了
看源码我们发现两个关键字被转义,大小于号和引号没有被过滤与转义,用双引号闭合方式,可利用其他关键字绕过
尝试img标签
1 | |
虽然…但是无法进行弹窗,尝试修改为a标签,成功弹窗
1 | |
第六关
在输入框中输入测试语句,感觉与上一关貌似是一样的
那直接利用上一关的payload,发现href被转义了….啊。。这。。
采用大小写即可绕过
1 | |
第七关
在输入框中输入测试语句,只显示了<括号,猜测可能是script被过滤
看源码可以看到script被过滤,采用双引号闭合
经过尝试可以使用script双写绕过
1 | |
第八关
在输入框中输入测试语句,输入的值均显示在页面上
分析源码可知,大小于号被转义、双引号被转义,语句采用双引号闭合方式,并且在20行可以看到大小于号被转义回来,关键字被插入下划线
可以使用javascript伪协议,javascript中的script会被转义为scr_ipt,源码中会对部分html实体编码转换为正常的字符,所以尝试采用将script htlm实体编码
1 | |
点击友情链接成功弹窗
pass!
第九关
在输入框中输入测试语句,输入的值也是显示在页面上
感觉和上一关差不多的情况,大小于号被转义、双引号被转义、、大写变小写,采用双引号闭合,有意思的是:在20行提示“您的链接不合法?有没有!”
what??什么鬼??和链接有关?难不成和http/https有关..
尝试输入一个正常的链接提交试试,发现返回是合法的
所以将http://写入到payload中让他匹配到存在即会返回合法,所以构造pyload
1 | |
第十关
在url中输入测试语句,页面显示看不出什么信息
分析源码,发现第15行大小于号被转义、双引号都被转义,语句采用双引号闭合。在第17、18、19行,发现三个输入参数,分别是t_link、t_history、t_sort
输入测试语句
1 | |
发现只有t_sort有值,大小于号被过滤,采用双引号闭合
那payload构造的时候,就不需要用><的事件触发方式构造语句
1 | |
第十一关
在url中输入测试语句,页面显示看不出什么信息
查看源码,发现第15行大小于号被转义、双引号都被转义,语句采用双引号闭合,在第17、18、19、20行,发现另外四个输入参数,分别是t_link、t_history、t_sort、t_ref,考虑将测试语句传入进行测试
构造访问
1 | |
可以看到大小于号被转义、双引号都被转义,语句采用双引号闭合,然后我尝试了很多绕过都不行,终究还是太菜了…尝试其余参数入手试试吧,可以发现其余参通过url地址栏传递无法传递,这时候就在想t_ref根据命令规则是不是就是http的referer头部信息,抓包尝试一下,发现没有任何过滤
okkkk,那就直接改referer头部信息,但是没有..手动加个referer
pass!
1 | |
第十二关
与关卡11类似,修改t_ua值进行绕过,也就是修改数据包中的UA头,不再多说
第十三关
与关卡11、12类似,修改值进行绕过,也不再多说
payload
1 | |
第十四关
额…第十四关咋啥东西也没有,就一个跳转,还是404!!源码也没啥东西,我也不知道是要考啥,捣鼓半天放弃..直接下一题吧
第十五关
分析源码发现URL的src参数回显在下面的ng-include
ng-include相当于php的include函数,所以我们只要包含一个有XSS漏洞的URL就可触发这里的XSS,那我们这里包含第一关的XSS试试
1 | |
第十六关
在url中输入测试语句,可以看到script被过滤了
可以看到script被过滤了、并且空格和/被转义了
用img绕过并且空格用%0a替换
1 | |
到了下一关发现提示“该插件不支持”,这时候我盲猜应该是考Flash XSS,既然提示我没有且加载不出来,那就到此为止吧,也不知道后面有多少关,本来一开始就是打着做着玩的心态,打发一下时间,也就不在这上面浪费时间了,说不定哪天又碰到了或者想起来了,到时候再搞搞玩吧!嗯嗯..就这样
继续刷我抖音了~#$%@……^&*(-+)😊