玩个闯关小游戏
昨天中午睡了一觉,一个朋友邀请我来玩一个闯关游戏,发过来一看是一个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,既然提示我没有且加载不出来,那就到此为止吧,也不知道后面有多少关,本来一开始就是打着做着玩的心态,打发一下时间,也就不在这上面浪费时间了,说不定哪天又碰到了或者想起来了,到时候再搞搞玩吧!嗯嗯..就这样

继续刷我抖音了~#$%@……^&*(-+)😊