我们不知不觉中已经打完了前十关了,接下来我们继续进行到第十一关
我们打开第十一关的界面,如下:
很显然没有打入点了,我们在url里面打入也失败了,这时我们可以利用抓包来进行打入
先来抓包分析一下
我们可以看到他是没有referer的,我们可以通过伪造referer的方法进行打入一些东西
我在这里示范的是打入一个带onclick弹窗的文本框的方式
放包查看页面变化
成功打入一个文本框
f12查看后发现这就是我们利用referer打入的带弹窗的文本框
我们点击后就直接触发js代码
我们来到第12关
我们先来试一下11关的payload看看行不行
很显然行不通的
那么我们就要想一下了referer既然不行,我们是不是还有个UA的http头注入没用过呢,对吧
我们在这里可以先试一试,万一成功了呢
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" onclick=alert(1) type="text"
这是payload
我们可以看到文本框打入成功
我们点一下文本框即可触发js代码
完美打入
我们看一下13题
由上面两道数据包的js代码注入题可知这道题应该还是数据包类型注入,我们想一下是不是还有cookie对吧
我们先来抓个包看一下
我们在这里就不一一测试了,直接看cookie那段,很明显有数据传输,我们想是不是可以利用cookie打入带js代码的文本框呢?
我们现在就来试试吧
发送数据包查看页面变化
页面出来了一个文本框,那么我们的payload里面嵌入了点击输入框触发js注入代码的代码,我们现在可以直接点击文本框从而让它触发我们所写好的条件
js代码打入成功
我们打开第十四关
这一关的图片一直加载不出来,所以也没有办法进行测试了。于是在网上找了一些参考,自己记录一下:
查看源码发现exif,猜测应该是exif xss,但是这个链接由于网络的原因无法访问,exif xss,一般利用于文件上传的地方,最经典的就是头像上传,上传一个图片,该图片的exif元数据被修改为xss payload,成功利用弹窗,具体实现使用kali下的exiftool工具,命令如下:
exiftool -FIELD=XSS FILEexiftool -Artist=' "><img src=1 onerror=alert(document.domain)>' brute.jpeg
我们跳转到第15关
查看代码,这一关是关于angular js的知识,ng-include有包含文件的意思,也就是相当于php里面的include,此处可以包含第一关的页面。
构造payload:
在url处写入语句,
src='level1.php?name=<img src=x onerror=alert(1)>'
如下图所示,这个没有利用成功,搜索到的另一个作者说是,因为这里需要访问angular.main.js这
个js文件,才能进行包含,虚拟机的环境中无法访问,看样子是需要fanqiang的,暂时无法实现,
最近国庆,抓的很严,我买的也挂掉了。。。
紧接着前天的写,今天又弄了一个临时的vpn,紧接着就进行了测试,如下图显示,测试成功:
打完第十五关紧接着来到十六关进行测试
查看代码发现大小写绕过失效,script、/、,等都被转换成 ,这时,可以尝试使用%0a,%0d来进行绕过。
构造语句:
Keyword=<img%0dsrc=a%0donerror=alert(16)>
Keyword=<iframe%0dsrc=0%0donmouseover=alert`16`></iframe>
Keyword=<svg%0aonload=alert`16`></svg>
等等,在上一篇文章里面已经提到了几个标签了
这是16关的payload
完美打入js代码
我们跳转到第17关
打开源码发现了两个注入点构造payload
我们发现两个输出的值都被做了实体化转义,无法闭合标签,而 embed标签可以加入事件,可以在arg01,或者arg02中加入事件去触发
测试语句:
arg01=a&arg02=%20onmouseover=alert`1`
我们来到第19关
Flash xss
页面源码,未插入语句时:
页面源码,插入语句后:
Payload:
网址或者ip地址/xss/level19.php?arg01=version&arg02=<ahref="javascript:alert(document.domain)">xss_by_didi</a>
点击“xss_by_didi”就可以触发XSS。
弹窗:
解题思路:
flash xss,需要对flash的反编译对源码进行分析,这里使用jpexs-decompiler来分析,首先定位getURL函数
然后追踪到sIFR的内容
得知version参数可以传入loc4变量中,即sIFR的内容中,但是getURL只在内容为link时打开,所以分析contentIsLink函数
所以我们可以构造<a > </a> 标签来传值
我们已经在不知不觉中来到了最后一关了
额……这一关完全没有头绪呀。。。答案是网上搜来的,测试代码
“\"))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//%26width%26height”
看着就好难。说是将swf下载下来分析得知是zeroclipboard.swf,有漏洞详情,因此构造出的payload就是上面的那句话,我就直接放进去测试一下成功率吧。
payload:
level20.php?arg01=a&arg02=\"))}catch(e{}if(!self.a)self.a=!alert(document.cookie)//%26width%26height
成功弹窗:
到这里本期XSS挑战之旅的全部关卡已经全部闯关完毕了,欢迎大家转发,点赞,关注哦!!!