第2章 Burp Suite Intruder 高级攻击

集束炸弹攻击 · Sniper攻击 · Pitchfork攻击 · Battering ram攻击 · 自定义Payload位置

Burp Suite Intruder 是 Web 安全测试中最强大的自动化攻击引擎之一。本章深入剖析四种核心攻击类型以及自定义 Payload 位置的高级技巧,帮助你在渗透测试中精准、高效地挖掘漏洞。

1. 集束炸弹攻击 (Cluster Bomb)

集束炸弹模式为每个 Payload 位置分配独立的字典,执行笛卡尔积组合。适用于需要同时爆破多个参数且参数之间无依赖关系的场景,例如登录表单的用户名与密码组合爆破。

Payload 1 Payload 2 Payload 3 笛卡尔积组合 (user1, pass1, token1) (user1, pass1, token2) … 共 n₁×n₂×n₃ 个请求 → 目标

典型场景:爆破登录接口 /api/login,用户名列表 50 个,密码列表 100 个,Token 列表 5 个,总请求数 = 50×100×5 = 25,000。

POST /api/login HTTP/1.1
Host: target.com
Content-Type: application/json

{"username":"§user§","password":"§pass§","csrf":"§token§"}

2. Sniper 攻击 (狙击手)

Sniper 模式使用单一字典,依次替换每个 Payload 位置。当有多个位置时,每个位置独立循环整个字典,其他位置保持初始值。适合测试单个参数对漏洞的影响。

字典 val1, val2, … 位置1 替换 位置2 替换 目标

示例:测试 IDOR 漏洞,依次替换用户ID参数。

GET /api/user/§id§/profile HTTP/1.1
Host: target.com

字典:[1001, 1002, 1003, …],每个 ID 发送一个请求,其他位置不变。

3. Pitchfork 攻击 (草叉)

Pitchfork 模式为每个 Payload 位置分配独立的字典,但按索引同步取值:第 i 个请求使用每个字典的第 i 个值。适用于参数之间存在对应关系的场景,如用户名与密码一一对应。

字典A 字典B user1, user2, … pass1, pass2, … 同步索引 请求1: (user1, pass1) 请求2: (user2, pass2) 请求3: (user3, pass3) → 目标

典型场景:已知一组泄露的凭证对,逐对测试。

POST /auth/login HTTP/1.1
Host: target.com

username=§user§&password=§pass§

字典A:[alice, bob, charlie],字典B:[pass1, pass2, pass3] → 仅 3 个请求。

4. Battering ram 攻击 (攻城锤)

Battering ram 模式使用同一个字典,所有 Payload 位置同时被替换为相同的值。适用于需要同步修改多个参数的情况,例如同时修改 Cookie 和 POST 体中的 session ID。

字典 token1, token2, … 位置1 ← 相同值 位置2 ← 相同值 目标

示例:同时替换 CSRF token 在 Header 和 Body 中的位置。

POST /transfer HTTP/1.1
Host: target.com
X-CSRF-Token: §token§

amount=100&csrf=§token§

5. 自定义 Payload 位置

Intruder 允许在请求的任意位置插入 Payload 标记 §,包括 URL 路径、请求头、Cookie、JSON/XML 体等。高级技巧包括:

自定义位置示例 GET /api/§version§/user/§id§?format=§fmt§ HTTP/1.1 Host: §host§ Cookie: session=§session§; lang=§lang§ {"username":"§user§","role":"§role§"} 5 个位置

高级技巧:使用 Payload 位置编辑器 精细控制每个位置的编码方式,例如对路径参数进行 URL 编码,对 JSON 值进行 Unicode 转义。

攻击类型对比

攻击类型字典数量组合方式请求数公式典型场景
集束炸弹多个笛卡尔积n₁ × n₂ × …多参数独立爆破
Sniper1 个依次替换每个位置位置数 × 字典大小单参数 fuzz
Pitchfork多个按索引同步max(n₁, n₂, …)凭证对测试
Battering ram1 个所有位置相同值字典大小同步 token 替换

实战建议