Burp Suite 抓包实战:Web 应用安全测试

FreeGuideOnline 最新 2026-06-13

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

  1. 访问 PortSwigger 官网 下载社区版(免费)或专业版。
  2. Java 环境要求:需要 Java 17 或更高版本。安装后执行 java -jar burpsuite_community.jar 启动。
  3. 首次启动选择“临时项目”并勾选“使用 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”
    • 点击确定。

方法二:使用浏览器扩展(推荐)

  • Chrome:安装 Proxy SwitchyOmega 插件,新建情景模式,指向 127.0.0.1:8080
  • Firefox:推荐 FoxyProxy 插件,功能类似,一键切换。

2.4 安装 Burp CA 证书(HTTPS 抓包关键)

若不安装证书,浏览器在访问 HTTPS 站点时会提示“连接不安全”,且无法查看加密内容。

  1. 配置好代理后,在浏览器访问 http://burpsuite
  2. 点击页面右上角的“CA Certificate”下载 cacert.der 证书文件。
  3. 将证书导入浏览器受信任的根证书颁发机构。
    • 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 RepeaterSend to Intruder 等操作。

3.3 请求与响应的修改

实时修改拦截请求:在 Request 面板中直接编辑,然后 Forward

事后修改(无需拦截)

  1. 在 HTTP History 中找到目标请求。
  2. 右键 -> “Send to Repeater”。
  3. 在 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 流量

  1. 确保手机与电脑在同一局域网。
  2. 电脑 Burp 设置监听:在 Proxy -> Options 添加新的监听器,绑定地址为 all interfaces,端口如8080。
  3. 手机设置 Wi-Fi 代理:主机填电脑局域网IP,端口8080。
  4. 手机浏览器访问 http://burpsuite 下载并安装 CA 证书。
  5. 部分 APP 使用 SSL Pinning,需借助 Xposed、Frida 等工具绕过。

五、典型实战场景演示

5.1 绕过前端输入限制

表单限制最大字数或仅允许数字,但这些验证在前端。通过 Burp 拦截修改提交的数据,绕过限制:

  1. 开启拦截,在浏览器中提交表单。
  2. 拦截到 POST 请求,直接修改参数值,如将限量改为负数。
  3. Forward 后观察服务器是否正常处理,据此判断后端校验情况。

5.2 暴力破解弱口令(Intruder 简例)

  1. 在登录页面尝试一次错误登录,在 HTTP History 中找到该登录请求。
  2. 右键 -> “Send to Intruder”。
  3. 进入 Intruder -> Positions,首先 Clear §,然后在要爆破的参数(如 password)两侧点击 Add §
  4. Payloads 中载入常见密码字典或简单数字列表。
  5. 点击 “Start attack”,在结果窗口观察响应长度、状态码等差异,识别正确凭证。

5.3 越权漏洞验证

通过替换 Cookie 或某个 ID 参数,观察是否返回他人数据。

  1. 登录用户A,拦截查看某资源请求,如 /user/profile?id=123
  2. 将 id 修改为 124(假设为用户B的ID),Forward。
  3. 若返回用户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)上多加练习,能力会快速提升。