Burp Suite 是任何 Web 应用程序安全专家的事实标准。它的代理模块可以实时拦截、分析和修改浏览器与服务器之间的 HTTP/HTTPS 流量。在本指南中,我们将讨论如何将 Burp Suite 配置为代理,使用哪些模块进行基本渗透测试,以及如何避免新手常犯的错误。
什么是 Burp Suite,渗透测试人员为什么需要它
Burp Suite 是由 PortSwigger 开发的 Web 应用程序安全测试集成平台。该工具有三个版本:Community(免费)、Professional 和 Enterprise。对于大多数初级和中级任务,Community 版本就足够了,尽管 Professional 版本提供了对主动漏洞扫描器和 Intruder 扩展功能的访问。
Burp Suite 在渗透测试中的主要角色是 中间人代理。该工具位于您的浏览器与目标 Web 应用程序之间,拦截所有 HTTP/HTTPS 流量。这使得:
- 查看浏览器隐藏的“原始”请求和响应
- 实时修改请求参数——更改头部、POST 请求体、cookie
- 在不重新加载页面的情况下重复发送修改过的数据的请求
- 自动遍历参数值以查找漏洞
- 构建完整的 Web 应用程序地图(Spider/Crawler)
- 发现 SQLi、XSS、IDOR、SSRF 等类别的漏洞以及其他数十种漏洞
Burp Suite 被专业渗透测试人员在商业项目中使用,也被 Bug Bounty 计划的参与者(HackerOne、Bugcrowd)使用。这是开始应用安全领域职业生涯时在工作机器上安装的第一个工具。
⚠️ 重要:
仅在您拥有所有者的书面许可的应用程序上使用 Burp Suite 进行测试,或用于学习环境(DVWA、WebGoat、HackTheBox、TryHackMe)。未经授权的测试是刑事犯罪。
Burp Suite 中的代理拦截是如何工作的
当您启动 Burp Suite 并激活代理模块时,您的机器上会启动一个本地代理服务器。默认情况下,它监听地址 127.0.0.1:8080。浏览器配置为使用此地址作为 HTTP/HTTPS 代理。
工作原理如下:
浏览器 │ │ HTTP/HTTPS 请求 ▼ Burp Suite 代理 (127.0.0.1:8080) │ │ ← 这里 Burp 拦截、显示、允许修改 │ ▼ 目标 Web 服务器 (example.com) │ │ HTTP/HTTPS 响应 ▼ Burp Suite 代理 │ │ ← 这里 Burp 拦截服务器响应 │ ▼ 浏览器 (接收响应)
对于 HTTPS 流量,Burp Suite 会实时生成每个域的 TLS 证书。为了避免浏览器显示不安全连接的警告,您需要将 Burp 的根 CA 证书安装到浏览器或操作系统的受信任证书颁发机构中。正是这个步骤使得 HTTPS 流量可以被解密——如果没有这个步骤,您将只能看到加密的数据。
拦截模式(Intercept)可以开启或关闭。当拦截模式开启时——每个请求在 Burp 中“冻结”,等待您的决定:直接通过、修改或丢弃。当关闭时——Burp 透明地通过流量,但仍然会在 HTTP 历史中记录它。
浏览器配置和 CA 证书安装
这是开始工作的最重要步骤。我们将考虑两种选择:使用 Burp 内置浏览器和手动配置 Chrome/Firefox。
选项 1:Burp Suite 内置浏览器(推荐给新手)
从 2021.x 版本开始,Burp Suite 附带一个内置的 Chromium 浏览器,已预配置为与代理一起使用并包含 CA 证书。这是开始工作的最快方法:
- 打开 Burp Suite → 转到 Proxy 部分
- 点击 Open Browser 按钮
- 将打开已配置为 Burp 代理的 Chromium
- 访问所需网站——流量将立即被拦截
选项 2:手动配置 Firefox
Firefox 更适合手动配置,因为它有自己的证书存储(不依赖于系统):
步骤 1. 在 Firefox 中配置代理:
- 打开 Firefox → 设置 → 代理服务器(或使用 FoxyProxy 扩展)
- 选择“手动配置代理”
- HTTP 代理:
127.0.0.1,端口:8080 - 勾选“将此代理用于 HTTPS”
- 点击 OK
步骤 2. 安装 Burp CA 证书:
- 确保 Burp Suite 正在运行并且代理处于活动状态
- 在浏览器中访问地址:
http://burpsuite或http://127.0.0.1:8080 - 点击“CA 证书”——将下载文件
cacert.der - 在 Firefox 中:设置 → 隐私与安全 → 证书 → 查看证书
- 选项卡“证书颁发机构” → 导入 → 选择下载的文件
- 勾选“信任此 CA 以识别网站”
- 点击 OK
完成这些步骤后,Firefox 将信任 Burp 为 HTTPS 网站生成的证书,您将能够无警告地拦截加密流量。
拦截和分析 HTTP/HTTPS 流量
配置浏览器后,可以开始处理流量。我们将讨论 Burp Suite 中 Proxy 选项卡的主要功能。
HTTP 历史——所有请求的日志
HTTP History 选项卡(Proxy → HTTP History)是通过 Burp 的所有请求的日志。在这里,您将看到:
- 请求方法(GET、POST、PUT、DELETE 等)
- URL 和参数
- HTTP 头(包括 Cookie、Authorization、User-Agent)
- 请求体(对于 POST/PUT)
- 服务器响应代码(200、302、403、500...)
- 响应的大小和时间
右键单击任何请求 → 您将获得一个上下文菜单,包含选项:发送到 Repeater、Intruder、Scanner、Decoder 和其他模块。这是 Burp 的主要工作流程。
Intercept——主动拦截模式
启用 Intercept(按钮“Intercept is on/off”)——下一个来自浏览器的请求将在 Burp 中“冻结”。您将看到其内容并可以:
- Forward——不做更改地通过请求
- Drop——丢弃请求(服务器将不会收到它)
- 手动修改数据——编辑任何字段并点击 Forward
- Action → Send to Repeater——发送到 Repeater 进行进一步分析
实际示例:您拦截了登录表单的 POST 请求。在请求体中看到参数 username=admin&password=12345。您可以直接在 Burp 中更改值并点击 Forward——服务器将收到已更改的数据。
关键模块:Repeater、Intruder、Scanner
Burp Suite 不仅仅是一个代理。这是一个完整的工具生态系统。我们将讨论三个使用最频繁的模块。
Repeater——手动测试请求
Repeater 是渗透测试人员的工作马。您将请求从 HTTP 历史中发送到它(右键 → Send to Repeater),然后可以:
- 修改请求的任何参数
- 通过点击 Send 重新发送请求
- 在右侧面板中查看服务器响应
- 比较不同请求变体的响应
- 保存所有发送变体的历史记录
使用 Repeater 的典型场景:您在 GET 请求中找到了参数 id=5。将请求发送到 Repeater 并开始检查:id=1、id=0、id=-1、id=999999 会发生什么?这是对 IDOR(不安全的直接对象引用)的基本检查。
Intruder——自动化爆破
Intruder 允许根据指定的字典或模式自动遍历参数值。主要攻击模式:
| 模式 | 描述 | 应用 |
|---|---|---|
| Sniper | 一个参数,一个字典 | 单字段暴力破解 |
| Battering Ram | 多个参数,一个值 | 需要在多个地方使用相同值时 |
| Pitchfork | 多个参数,多个字典(同步) | 从现成的对中遍历用户名和密码 |
| Cluster Bomb | 多个参数,所有组合 | 所有组合的完全遍历 |
在 Community 版本中,Intruder 的速度被人为限制(约每秒 1 个请求)。在 Professional 版本中没有限制。为了绕过此限制,Community 版本使用第三方扩展或与 Burp 结合使用 ffuf/wfuzz 工具。
Scanner——自动漏洞扫描(Pro)
Scanner 仅在 Professional 版本中可用。它会自动分析拦截的请求并查找漏洞:SQL 注入、XSS、XXE、SSRF、路径遍历等。在 Community 版本中有被动扫描——Burp 分析流量并突出显示潜在的危险区域,而无需主动攻击。
通过 Burp Suite 查找常见漏洞
我们将讨论使用 Burp Suite 查找最常见漏洞的实际场景。
SQL 注入(SQLi)
通过 Repeater 进行 SQLi 的基本检查:
- 拦截带有发送到数据库的参数的请求(例如
id=5或search=test) - 发送到 Repeater
- 在值中添加单引号:
id=5' - 点击 Send 并检查响应——如果服务器返回 SQL 错误或行为发生变化——则存在 SQLi 的迹象
- 检查布尔注入:
id=5 AND 1=1与id=5 AND 1=2——如果响应不同,则存在注入
反射型 XSS
反射型 XSS 检查:
- 找到在响应页面上显示的参数
- 将请求发送到 Repeater
- 插入测试负载:
<script>alert(1)</script> - 检查响应——如果负载未转义地出现在 HTML 中,则存在 XSS
- 检查 script 标签是否被过滤:尝试
<img src=x onerror=alert(1)>
IDOR(不安全的直接对象引用)
现代 Web 应用程序中最常见的漏洞类别之一:
- 找到通过数字 ID 访问对象的请求:
/api/user/profile?id=1234 - 发送到 Repeater
- 将 ID 更改为其他值:
id=1235、id=1 - 如果服务器返回了另一个用户的数据而没有授权错误——这就是 IDOR
授权检查和会话管理
Burp Suite 使得检查授权机制变得简单:
- 将对受保护资源的请求复制到 Repeater
- 删除或更改会话 cookie 的值
- 检查服务器是否会返回授权错误或仍然提供数据
- 检查在将算法更改为
none时 JWT 令牌是否有效
Burp Suite + 外部代理:为什么需要它
Burp Suite 是一个本地工具代理。但在某些场景中,渗透测试人员需要通过外部代理发送 Burp 流量。我们将讨论何时以及为什么需要这样做。
场景 1:从真实 IP 地址进行测试
一些 Web 应用程序基于地理位置或 IP 声誉进行保护。如果目标应用程序阻止来自数据中心或已知 VPN IP 的流量,渗透测试人员可以使用 住宅代理——它们具有真实家庭用户的 IP 地址,看起来像普通访客。
场景 2:在主动测试中绕过速率限制
在主动扫描或使用 Intruder 时,目标服务器可能会因请求过多而阻止您的 IP。通过代理池轮换可以将负载分散到不同的 IP 地址。对于这些任务,数据中心代理 是一个很好的选择——它们提供高速度和稳定的连接,这在自动化测试中至关重要。
如何在 Burp Suite 中配置上游代理
Burp Suite 支持上游代理(上级代理)。配置:
- 打开 Burp Suite → 设置(或在旧版本中使用用户选项)
- 转到 Network → Connections → Upstream Proxy Servers 部分
- 点击 Add
- 在目标主机字段中输入
*(适用于所有主机)或特定域 - 输入外部代理的地址和端口
- 选择类型:HTTP、SOCKS4 或 SOCKS5
- 如有必要,输入用户名和密码
- 点击 OK
# Burp Suite 中上游代理的配置示例: Destination host: * Proxy host: proxy.example.com Proxy port: 8888 Auth type: Basic Username: your_login Password: your_password Proxy type: SOCKS5
完成此配置后,Burp 发送到目标服务器的所有流量将通过指定的上游代理。浏览器仍然连接到 Burp 的 127.0.0.1:8080,而 Burp 将请求通过外部代理转发。
渗透测试中代理类型的比较
| 代理类型 | 速度 | 匿名性 | 在渗透测试中的应用 |
|---|---|---|---|
| 数据中心 | 高 | 中 | 主动扫描、Intruder |
| 住宅 | 中 | 高 | 绕过地理限制、模拟用户 |
| 移动 | 中 | 非常高 | 测试移动 API、绕过严格的 WAF |
使用 Burp Suite 的技巧和常见错误
多年来,Burp Suite 的使用使渗透测试社区积累了一份新手常见错误和经过验证的技巧的列表。以下是最重要的几点。
新手常见错误
- 忘记安装 CA 证书。 症状:HTTPS 网站显示不安全连接的警告,流量未被拦截。解决方案:按照上面的说明安装证书。
- Intercept 保持开启。 浏览器“挂起”——无法加载页面。解决方案:转到 Proxy → Intercept 并点击“Intercept is on”以关闭拦截。
- 未为系统流量添加例外。 Burp 拦截 Windows 更新、杀毒软件等的流量。请在 Proxy → Options → Intercept Client Requests 中配置过滤器,以仅拦截所需域的流量。
- 未经许可测试生产服务器。 这是非法的。仅使用测试环境或明确获得许可的应用程序。
- 忽视 Target → Site Map 选项卡。 在这里,Burp 构建整个应用程序的地图——所有发现的端点、参数和响应。这是侦查时宝贵的信息来源。
有用的技巧
- Match and Replace。 在 Proxy → Options → Match and Replace 中可以配置请求中值的自动替换。例如,自动添加头部或将 User-Agent 更改为移动设备。
- Decoder。 Decoder 模块允许快速解码/编码数据:Base64、URL 编码、HTML 实体、十六进制。在分析令牌和参数时不可或缺。
- Comparer。 允许逐字节比较两个服务器响应。将两个相似的请求发送到 Comparer,您将立即看到差异。
- BApp Store。 Burp Suite 支持扩展(BApp Store)。流行的扩展包括:Autorize(授权检查)、Logger++(扩展日志记录)、Turbo Intruder(在 Community 中快速爆破)、JWT Editor。
- 保存项目。 在 Professional 版本中可以保存项目。在 Community 中使用 Export → Save state,以便在关闭时不丢失 HTTP 历史。
- 使用 Scope。 在 Target → Scope 中添加目标应用程序的域。这将使 Burp 过滤无关流量,避免在 HTTP 历史中充斥 Google、CDN 等请求。
实用练习资源
| 资源 | 类型 | 适合谁 |
|---|---|---|
| PortSwigger Web Security Academy | 免费实验室 + 理论 | 新手和中级水平 |
| DVWA(Damn Vulnerable Web App) | 本地环境 | 无风险练习 |
| HackTheBox / TryHackMe | 在线 CTF 平台 | 实践真实场景 |
| WebGoat(OWASP) | 带有课程的本地环境 | 学习 OWASP Top 10 |
结论
Burp Suite 是一个强大且易于使用的 Web 应用程序安全测试工具。它的代理模块提供了对 HTTP/HTTPS 流量的完全可见性,而 Proxy → Repeater → Intruder 的组合覆盖了大多数手动渗透测试任务。您可以从 Community 版本和 PortSwigger Web Security Academy 的免费实验室开始,这是实践掌握该工具的最佳方式。
开始的关键步骤:安装 Burp Suite,通过 FoxyProxy 配置浏览器,安装 CA 证书,将目标域添加到 Scope——您就准备好工作了。掌握基本模块后,转向学习 BApp Store 中的扩展:Autorize、Turbo Intruder 和 JWT Editor 将大大扩展您的能力。
如果在您的渗透测试中需要测试具有非标准地理位置的应用程序、绕过 IP 阻止或模拟真实用户的流量,建议在 Burp Suite 中配置上游代理。对于需要高度匿名性和绕过基于 IP 声誉的保护的任务,住宅代理是一个很好的选择——它们提供来自真实用户的 IP 地址的流量,并在测试时最小化被阻止的风险。
```