Burp Suite Pro 高级用法:Repeater / Intruder / Turbo Intruder
前言
Burp 是 Web 渗透的瑞士军刀。免费版够用但 Pro 版才是完全体。本文聚焦 Pro 版独有功能和高级技巧。
一、Repeater 高效工作流
快捷键清单
Ctrl+I 发送到 Intruder
Ctrl+R 发送到 Repeater
Ctrl+Shift+I 发送到 Organizer
Ctrl+Tab 切换 Repeater 标签
Ctrl+D 添加 payload 标记
Ctrl+F 查找
Ctrl+H Burp 主菜单
Ctrl+K 把 Repeater 请求拆成多个
Ctrl+M 手动设置数据边界
Ctrl+T 把响应发给 Comparer
高级技巧
技巧 1:快速参数切换
鼠标悬停在参数上,按左右箭头快速切换值
技巧 2:自动解析 JSON / gzip
Options -> Display -> Unpack gzip / deflate
右键 "Pretty print" 格式化 JSON
技巧 3:多标签批量重发
右键 Repeater 标签 -> "Duplicate tab"
改成不同的 payload 分别测试
技巧 4:宏(Macros)自动处理
Project options -> Sessions -> Macros
每次请求前先刷新 token
技巧 5:Organizer(Pro 独有)
批量管理请求,设置并发数、延迟、失败重试
二、Intruder 高级用法
攻击类型
Sniper(狙击手)
- 一个 payload 位置,一个 payload 列表
- 一次只替换一个标记位置
- 适合同一参数的批量测试
Battering ram(破城锤)
- 多个 payload 位置,同一个 payload 列表
- 所有位置用同一个 payload
Pitchfork(干草叉)
- 多个 payload 位置,多个 payload 列表
- 每个位置用自己的 payload 列表,按行对齐
Cluster bomb(集束炸弹)
- 多个 payload 位置,多个 payload 列表
- 笛卡尔积(所有组合都试)
- 暴力破解标配
Payload 类型 + 处理链
Payload 生成器:
1. Simple list 自己写 payload 列表
2. Runtime file 从文件动态读
3. Custom iterator 自定义迭代(日期、IP 范围)
4. Character ranges 字符范围
5. Numbers 数字范围
6. Case modifications 大小写变体
7. Recursive grep 从响应里 grep 新 payload 再递归注入
Payload Processing(关键):
Payload 进入位置前会经过 Processing 链
实战 1:SQLi 需要 base64 编码
Payload: ' OR 1=1 --
Processing: URL encode -> Base64 encode
实战 2:登录暴力破解
位置 1: username (Simple list)
位置 2: password (Simple list -> Add prefix "P@" -> MD5)
Turbo Intruder(Pro 独有)
# Turbo Intruder 是 Pro 版的极速 Intruder
# 用 Python 脚本写攻击逻辑,支持 1000+ 并发
# Example 1: 简单字典爆破
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=10,
requestsPerConnection=100,
pipeline=False)
for word in open("/path/to/wordlist.txt"):
engine.queue(target.req, word.rstrip())
def handleResponse(req, interesting):
if interesting:
table.add(req)
# Example 2: 登录爆破 + 成功检测
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=20,
requestsPerConnection=100)
for user in open("usernames.txt"):
for pwd in open("passwords.txt"):
body = "username=" + user.strip() + "&password=" + pwd.strip()
engine.queue(target.req, body)
def handleResponse(req, interesting):
if "Login successful" in req.response or req.response.status == 302:
table.add(req)
# Example 3: IDOR 越权批量测试
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=50,
requestsPerConnection=200)
for user_id in range(1, 10000):
# 请求里把 user ID 标记成 §user_id§
engine.queue(target.req, str(user_id))
def handleResponse(req, interesting):
table.add(req)
三、Scanner 配置(Pro 独有)
主动扫描(Active): 修改请求 -> 可能造成业务影响
被动扫描(Passive): 只看响应 -> 安全
什么时候主动扫?
- 开发测试环境
- 客户明确授权
- API 接口有限范围测试
什么时候被动扫?
- 生产环境(默认)
- 客户有严格限制
主动扫描配置:
1. Target -> Live scanning -> 添加目标
2. Scan configuration -> Scan
Crawl strategy: fast / deepest
Link depth limit: 5
3. Audit strategy -> Scope
Only audit selected endpoints
4. Issues -> Filter
只扫 Critical 和 High
忽略某些参数(search 框会造成 XSS 误报)
自定义扫描规则:
- 只扫特定参数名(id, user_id, order_id)
- 添加自定义 payload 到 Burp Payload Library
- 右键误报 -> "Suppress this issue" 自动记住
四、必装扩展
核心(必装):
1. Logger++ 比自带 HTTP history 强 10 倍
2. Turbo Intruder 极速 Intruder(Pro 版)
3. Authorize 自动化越权测试(Pro 版)
4. Param Miner 自动发现隐藏参数
5. Shine Burp 关键按钮置顶
渗透辅助:
6. Retire.js 识别过时 JS 库及其 CVE
7. Wappalyzer Integration 直接看技术栈
8. Header Analysis 分析响应头安全配置
9. JSON Web Tokens JWT 查看器 + 编辑器 + 攻击
10. Attack Surface Detector 反编译 JAR 找攻击面
五、实战场景
场景 1:登录暴力破解
1. Proxy 抓登录请求
2. 发到 Turbo Intruder
3. 写脚本(见上方 Example 2)
4. 20 并发跑 1000 用户名 x 1000 密码
5. 发现成功登录(返回 dashboard 或 302)
场景 2:越权批量测试
1. 登录低权限用户
2. Burp Suite -> Authorize 扩展
3. 设置两个身份:User A(低权限)、User B(高权限)
4. Authorize 自动替换 Cookie 重发所有请求
5. 看 User B 能不能看到 User A 的数据
场景 3:参数枚举
1. 打开 Param Miner
2. "Guess the parameters"
3. Param Miner 用布尔盲注原理:
在请求里加 ?debug=1 看响应变化
4. 找到隐藏参数后手动测试注入
六、推荐资源
- Burp 官方文档: https://portswigger.net/burp/documentation
- BApp Store: Extender -> BApp Store
- PortSwigger Academy(含 Burp 教程)
- 《The Web Application Hacker's Handbook》
七、Burp 快捷键速查卡
主菜单:
Ctrl+Shift+R 主菜单
Ctrl+Shift+H 切换顶部工具栏
Ctrl+Tab 在标签页中切换
Ctrl+Shift+Tab 反向切换
Ctrl+T 新建 Repeater
Repeater:
Ctrl+R 发送请求
Ctrl+Shift+R 从文件加载
Ctrl+Shift+P 保存请求
Ctrl+D 添加 payload 标记
Ctrl+E 展开/折叠参数
Ctrl+F 查找
Ctrl+M 手动设置边界
Intruder / Scanner:
Ctrl+I 发送到 Intruder
Ctrl+Shift+I 发送到 Organizer
Payload 处理:
Ctrl+U URL 编码
Ctrl+Shift+U URL 解码
Ctrl+B Base64 编码
Ctrl+Shift+B Base64 解码
Ctrl+H HTML 编码
Ctrl+J JSON 格式化
八、Burp 常见问题
Q: Pro 版值得买吗?
A: 做渗透或 Bug Bounty 绝对值得。
Pro 独有:Turbo Intruder、Scanner、Organizer、Authorize、Param Miner。
一个 Critical 漏洞赏金就能覆盖一年 license。
Q: Mac 上 Burp 很慢?
A: Java 17 + -Xmx4096m + 关闭不常用扩展 + 清理 History。
Q: 自动处理动态 Token?
A: Sessions -> Session handling rules:
1. Run a macro 自动重新登录
2. Check session is valid 过期自动刷新
比如:请求前调 /api/login 拿新 token 替换到当前请求
Q: JSON Body 注入?
A: 右键 -> Content-Type -> JSON
选中值按 Ctrl+D 标记
发到 Intruder / Repeater
Q: Burp 能当批量扫描器用吗?
A: 不太适合。扫描用 Nuclei + ffuf。
Burp 适合手工精细化调整。
Q: Scanner 误报太多?
A: 右键误报 -> Suppress this issue
Scan configuration -> Issues -> Filter 只扫特定类型