0x11
F12发现多了一个参数,也把这个参数加入到url。
发现还是出现在t_sort参数,尝试使用上一关的payload
没有反应,查看源码发现是对”进行了实体化编码,改变思路。因为必须要使用一个”进行闭合,但由于实体化,导致无论如何不能将value的值进行闭合。
多出来的t_ref可能是个切入点,因为平时没有碰到过,经验比较少,查阅资料后
了解到Referer头注入。
图中有HTTP_REFERER
在第十关即将结束的时候点击确定并用bp抓包
看到有Referer参数,尝试将上一关的payload写入Referer,
0x12
从11关开始需要进行代码审计,所以可以打开php文件进行代码的审查
可以发现本关加入了User-Agent
User-Agent中文名为用户代理,是HTTP协议中的一部分,属于头域组成,向访问网站提供所使用的的浏览器类型及版本、操作系统及版本、浏览器内核等信息的标识。
尝试抓包
找到User-Agent
将里面内容改成payload
点击输入框弹窗
0x13
仍然利用代码审计,查看可利用的位置。
由变量名可得本关可能是COOKIE注入
0x14
本关为Exif XSS漏洞。Exif是可交换图像文件格式(英语:Exchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。
意思是可以通过修改图片的属性将XSS的payload写到图片里面,由浏览器负责读取图片属性造成XSS攻击。链接好像失效了,没有进一步操作。
相关Exif链接
0x15
F12查看源码,发现有个注释过的ngInclude,百度搜索下,发现是一个AngularJS的扩展
进行代码审计
参数为src
使用ng-include跳转到第一关的html然后触发xss达到目的
构造payload
1 | http://127.0.0.1/xss-labs/level15.php?src="http://127.0.0.1/xss-labs/level1.php?name=test<img src=1 onerror=alert(1)>" |
0x16
F12查看源码,每一关都通过keyword传入下一关,尝试用keyword传入参数1
发现还是有keyword的,同时测试是否过滤了某些关键字符
script,on,href,src,alert
最后发现script过滤了,所以不能直接script弹窗。输出是在标签内部,所以可以用,构造payload为
1 | <img src=x onclick=alert(1)> |
发现空格被实体化了,尝试转换为换行符进行注入。
0x17
按照惯例,F12查看参数和注入点
发现一个疑似注入点,随机输入参数,没有变化,进行代码审计
embed标签是用来嵌入图片的
看到有两个参数,arg01和arg02,重新输入参数。
1 | http://127.0.0.1/xss-labs/level17.php?arg01=a |
发现自动对参数的=号移到了后面,且添加arg02参数后,发现其实是将arg01的参数与arg02参数拼接在一起,尝试构造payload
可以尝试用onclick或onmouseover绕过过滤,onmouseover函数是将鼠标移动到对应位置上触发函数
1 | ?arg01=a&arg02=b onmouseover=alert(1) |
0x18
第十八关和第十七关解题思路一样,主要是图片不一样,其他都相同,直接在后面填入payload就通关。
0x19
本关的思路是flash XSS,一般触发的类型有getURL,externalinterface.call,addcallback与lso结合等。
需要将网站上的swf文件下载下来。再将flash反编译一下,这里用的是jpex
在github上开源。
由于flash已经不支持在浏览器上运行,这里不好复现。
可以看看一篇文章
flash XSS解题
0x20
20关和19关的解题思路一样的,都是关于Flash XSS如何突破,学的少不是很会,可以看看其他相关文章