Burp Suite 抓包实战:Web 应用安全测试
Burp Suite 抓包实战:Web 应用安全测试
一、认识 Burp Suite 与抓包原理
Burp Suite 是 Web 安全测试领域使用最广泛的集成平台,由 PortSwigger 开发。它本质上是一个拦截代理,位于浏览器和目标服务器之间,能够捕获、查看、修改所有经过的 HTTP/HTTPS 流量。无论是做漏洞扫描、渗透测试还是日常调试,掌握 Burp Suite 的抓包技巧都是基础且关键的一步。
1.1 Burp Suite 的核心组件
- Proxy(代理):负责拦截、查看、修改请求与响应,是抓包的核心模块。
- Repeater(重放器):手动修改并重新发送单个请求,观察响应变化。
- Intruder(入侵者):自动化对参数进行测试,如暴力破解、模糊测试。
- Scanner(扫描器,专业版):自动检测 Web 漏洞。
- Decoder / Comparer / Sequencer / Collaborator:辅助编码解码、数据对比、令牌分析及带外交互。
本教程聚焦 Proxy 抓包实战,带你从零搭建环境,掌握请求拦截、过滤、改包等核心能力。
二、环境搭建:让 Burp 接管浏览器流量
2.1 下载与启动 Burp Suite
- 访问 PortSwigger 官网 下载社区版(免费)或专业版。
- Java 环境要求:需要 Java 17 或更高版本。安装后执行
java -jar burpsuite_community.jar启动。 - 首次启动选择“临时项目”并勾选“使用 Burp 默认配置”,点击“启动 Burp”。
2.2 配置代理监听
Burp 默认在 127.0.0.1:8080 开启代理监听。
- 进入
Proxy->Options标签页,确认监听器处于“Running”状态。 - 若端口冲突可点击
Edit修改端口。 - 确保
Intercept子标签下的拦截按钮为“Intercept is on”(默认开启),这表示请求会被暂停等待操作。
2.3 配置浏览器代理
要让浏览器的 HTTP/HTTPS 流量经过 Burp,需设置代理。
方法一:浏览器内置代理设置(以 Firefox 为例)
- 设置 -> 网络设置 -> 手动代理配置:
- HTTP 代理:
127.0.0.1,端口:8080 - 勾选“也将此代理用于 HTTPS”
- 点击确定。
- HTTP 代理:
方法二:使用浏览器扩展(推荐)
- Chrome:安装 Proxy SwitchyOmega 插件,新建情景模式,指向
127.0.0.1:8080。 - Firefox:推荐 FoxyProxy 插件,功能类似,一键切换。
2.4 安装 Burp CA 证书(HTTPS 抓包关键)
若不安装证书,浏览器在访问 HTTPS 站点时会提示“连接不安全”,且无法查看加密内容。
- 配置好代理后,在浏览器访问
http://burpsuite。 - 点击页面右上角的“CA Certificate”下载
cacert.der证书文件。 - 将证书导入浏览器受信任的根证书颁发机构。
- Firefox:选项 -> 隐私与安全 -> 查看证书 -> 证书颁发机构 -> 导入,信任此证书用于标识网站。
- Chrome:设置 -> 隐私与安全 -> 安全 -> 管理证书 -> 受信任的根证书颁发机构 -> 导入。
导入成功后,Burp 即可解密 HTTPS 流量,HTTP History 中会显示明文内容。
三、Proxy 抓包实战核心操作
3.1 拦截与查看请求
- 打开浏览器访问任意 HTTP 网站(如
http://httpbin.org/get)。 - 此时 Burp Proxy 的
Intercept标签页会捕获到该请求,页面一直等待。 - 观察请求结构:请求行、请求头、空行、请求体(POST 时)。
- 点击
Forward:将请求发送给服务器。 - 点击
Drop:丢弃该请求,浏览器端可能会超时。 - 点击
Action:可发送到其他模块(如 Repeater)进一步测试。
小技巧:频繁拦截会影响浏览体验,可通过 Intercept is on/off 按钮临时关闭拦截,需要时再开启。流量仍会记录在 HTTP History 中。
3.2 HTTP History 的使用
HTTP History 位于 Proxy -> HTTP history 标签页,记录所有代理流量。
- 列表显示请求的方法、URL、状态码、响应长度等。
- 选中某条记录,下方会分面板显示 Request(Raw/Headers/Hex)和 Response。
- 利用过滤器(Filter 输入框)快速定位目标:
- 按域名过滤:
.*\.example\.com$ - 仅显示包含特定参数的请求:
?id= - 可按状态码、MIME 类型等高级过滤。
- 按域名过滤:
- 右键记录,可执行
Send to Repeater、Send to Intruder等操作。
3.3 请求与响应的修改
实时修改拦截请求:在 Request 面板中直接编辑,然后 Forward。
事后修改(无需拦截):
- 在 HTTP History 中找到目标请求。
- 右键 -> “Send to Repeater”。
- 在 Repeater 中修改任意参数、头部,点击 “Send” 观察结果。这是安全测试中最常用的手法。
修改案例:将 User-Agent 改为移动端字符串,测试服务器是否有不同响应。
3.4 设置抓包范围(Target Scope)
为避免无关请求干扰,可限定代理只记录或拦截特定目标的流量。
- 进入
Target->Scope标签页。 - 点击
Include in scope,添加规则,例如Protocol: Any,Host: *.sectest.com。 - 然后在
Proxy->HTTP history中启用过滤栏上的 “Use scope only” 按钮。 - 拦截时也可设置
Intercept Client Requests仅拦截 scope 内的请求。
四、进阶抓包技巧
4.1 匹配与替换(Match and Replace)
可用于自动修改请求或响应,比如强制修改特定头部、Cookie中的值。
- 进入
Proxy->Options->Match and Replace。 - 点击
Add,设置规则:- Type:Request header(或 Response body)
- Match:
User-Agent: .* - Replace:
User-Agent: Burp Scanner
- 开启该规则后,所有请求的 User-Agent 被替换,方便追踪自产流量。
常用于绕过某些客户端限制或批量测试。
4.2 处理 WebSocket 流量
Burp 默认支持 WebSocket 抓包。
- WebSocket 历史在 Proxy 历史中显示,可查看消息交互。
- 右键 WebSocket 连接,选择 “Send to WebSocket Repeater” 进行消息级测试。
4.3 抓取移动端 APP 流量
- 确保手机与电脑在同一局域网。
- 电脑 Burp 设置监听:在
Proxy->Options添加新的监听器,绑定地址为all interfaces,端口如8080。 - 手机设置 Wi-Fi 代理:主机填电脑局域网IP,端口8080。
- 手机浏览器访问
http://burpsuite下载并安装 CA 证书。 - 部分 APP 使用 SSL Pinning,需借助 Xposed、Frida 等工具绕过。
五、典型实战场景演示
5.1 绕过前端输入限制
表单限制最大字数或仅允许数字,但这些验证在前端。通过 Burp 拦截修改提交的数据,绕过限制:
- 开启拦截,在浏览器中提交表单。
- 拦截到 POST 请求,直接修改参数值,如将限量改为负数。
- Forward 后观察服务器是否正常处理,据此判断后端校验情况。
5.2 暴力破解弱口令(Intruder 简例)
- 在登录页面尝试一次错误登录,在 HTTP History 中找到该登录请求。
- 右键 -> “Send to Intruder”。
- 进入 Intruder -> Positions,首先
Clear §,然后在要爆破的参数(如 password)两侧点击Add §。 - Payloads 中载入常见密码字典或简单数字列表。
- 点击 “Start attack”,在结果窗口观察响应长度、状态码等差异,识别正确凭证。
5.3 越权漏洞验证
通过替换 Cookie 或某个 ID 参数,观察是否返回他人数据。
- 登录用户A,拦截查看某资源请求,如
/user/profile?id=123。 - 将 id 修改为 124(假设为用户B的ID),Forward。
- 若返回用户B的数据,说明存在水平越权漏洞。
六、常见问题与排错
- 浏览器提示“代理服务器拒绝连接”:检查 Burp 监听器是否启动,确认浏览器代理地址端口无误。
- HTTPS 站点证书错误:确保已正确导入 Burp CA 证书,并信任。若使用 Firefox 需单独导入。
- 抓不到任何请求:检查
Intercept是否为 on 且流量被拦截,或查看 Scope 是否配置错误导致历史记录被过滤。 - 部分流量不经过代理:某些插件或应用可能绕过系统代理,可使用 Burp 的
Invisible Proxy模式或结合 Proxifier 实现全局强制代理。 - Burp UI 响应慢:历史记录过多时清理项目或增大 JVM 内存:启动时添加参数
-Xmx2g。
七、安全与合规提醒
- 仅可在获得明确授权的目标上使用 Burp Suite 进行测试。
- 未经授权的抓包和侵入测试属于违法行为,请务必遵守《网络安全法》及相关法律法规。
- 测试结束后及时关闭代理,避免流量持续经过 Burp。
掌握以上内容,你已经具备了使用 Burp Suite 进行 Web 流量分析与安全测试的扎实基础。后续可深入研究 Repeater 手动测试、Scanner 自动化扫描以及各种插件的深度使用。实战是最好的老师,在合法靶场(如 PortSwigger Web Security Academy)上多加练习,能力会快速提升。