Burp Suite Web 应用安全测试入门
Burp Suite 简介
Burp Suite 是 PortSwigger 开发的 Web 应用安全测试集成平台,功能覆盖从被动扫描到主动漏洞挖掘的完整流程。Kali 自带的是 Community 版(免费),商业授权版有更多自动化功能。
核心组件
| 组件 | 功能 |
|---|---|
| Proxy | HTTP/HTTPS 代理,拦截所有浏览器流量,修改请求/响应后发送 |
| Spider | 爬虫,自动发现目标 Web 应用的所有链接和页面 |
| Scanner | 主动/被动漏洞扫描(Pro 版才有主动扫描) |
| Intruder | 批量发送修改后的请求做暴力测试(参数遍历、fuzzing) |
| Repeater | 发送单个请求、反复调整参数观察响应 |
| Sequencer | 分析 session token 的随机性 |
| Decoder/Encoder | 各种编码/解码/哈希工具(URL、Base64、MD5 等) |
基础工作流
1. 配置浏览器代理
Burp Suite 默认监听 127.0.0.1:8080。在浏览器(Kali 自带的 Iceweasel/Firefox)中配置代理:
设置 → 网络设置 → 设置 → 手动代理配置
HTTP 代理: 127.0.0.1 端口: 8080
HTTPS 代理: 127.0.0.1 端口: 8080
2. 导入 Burp CA 证书
否则 HTTPS 站点会报证书错误。在浏览器中访问 http://burp 下载证书,然后:
Firefox 设置 → 隐私与安全 → 证书 → 查看证书 → 导入
选择下载的 PortSwiggerCA.crt
3. 拦截和修改请求
浏览器正常访问目标站点,Burp Proxy 的 HTTP history 标签页会记录所有请求。想修改请求时:
- 在 Proxy → Intercept 标签页开启拦截(Intercept is on)
- 浏览器发出请求后会停在 Burp 中
- 编辑 Request 中的参数值(如把
id=1改成id=2) - 点击 Forward 发送修改后的请求
4. Repeater 重放测试
在 HTTP history 中右键一个请求 → "Send to Repeater",即可在 Repeater 模块中反复发送该请求、修改参数、对比不同响应。这是注入测试、权限测试的基本工作方式。
5. Intruder 暴力测试
将请求发送到 Intruder,设置 Payload 位置(用 § 符号标记),然后加载 Payload 字典。典型场景:
- 暴力破解登录表单密码
- 参数枚举(数字 ID、用户名、文件夹名)
- SQL 注入 fuzzing
Community 版 vs Pro 版差异
| 特性 | Community | Professional |
|---|---|---|
| 主动漏洞扫描 | ❌ | ✅ |
| 被动扫描 | ✅ | ✅ |
| Intruder 速率限制 | 有 | 无 |
| 插件扩展 | 部分 | 完整 |
| 保存项目 | ❌ | ✅ |
| API | ❌ | ✅ |
Kali 自带 Community 版够用,个人学习或小型项目可以考虑 Pro 版订阅。
实战场景:绕过前端输入验证
很多 Web 应用在前端用 JavaScript 做输入验证(比如邮箱格式、密码长度),但后端可能没做同样严格的检查。用 Burp Suite 可以绕过这个限制:
- 浏览器中正常操作到提交表单的步骤
- Burp Intercept 拦截提交请求
- 把前端不允许的非法值填进去(如超长字符串、特殊字符、数组格式)
- 发送请求看后端如何响应
这就是为什么"客户端验证必须被视为不可靠"——任何验证都可以通过代理绕过。