Keep reverse-skill a skill router, not a platform. RULES hot path is master-route then case-init then PRIMARY. MASTER-ROUTING priority is verified against routing.json. precedent-auth no longer grants. CTF is one R41 pointer, not 40 competition routes. open.ps1 never deletes .i64/.idb. Route-scope parse is line-anchored and last-match. Tests: 168 routing cases, parse-contracts, title-safety in CI.
23 KiB
BurpSuite MCP 完整使用指南
来源:PortSwigger 官方文档 + TrustedSec + InfoSec Write-ups(2026-05-24) 适用场景:Web 渗透测试中需要 AI 辅助分析流量、自动化攻击、生成报告
概述
BurpSuite MCP 将 Burp Suite 的所有核心功能暴露给 AI 客户端(Kiro/Claude/Cursor),实现:
- AI 自动读取代理历史,分析请求中的漏洞
- AI 自动构造攻击 payload 并通过 Intruder 枚举
- AI 自动将可疑请求发到 Repeater 验证
- AI 自动生成渗透测试报告
安装
前置条件
- BurpSuite Professional(社区版功能受限)
- 下载地址:https://portswigger.net/burp/releases (官方 PortSwigger,不要用破解包)
安装 MCP 扩展
方法 A:使用本项目自带扩展(推荐,78 个工具全覆盖)
Windows:
1. 打开 Burp Suite Pro
2. Extensions → Installed → Add
3. Extension Type: Java
4. Select file: <SKILL_ROOT>\burp-mcp-full\build\libs\burp-mcp-full.jar
5. 看到 [MCP] Server started on http://127.0.0.1:9876 即成功
Linux / Kali / macOS:
1. 先编译: cd <SKILL_ROOT>/burp-mcp-full && chmod +x build.sh && ./build.sh
2. 打开 Burp Suite Pro
3. Extensions → Installed → Add → Java
4. Select: <SKILL_ROOT>/burp-mcp-full/build/libs/burp-mcp-full.jar
5. 看到 [MCP] Server started 即成功
方法 B:使用 PortSwigger 官方扩展(21 个工具)
1. Extensions → BApp Store → 搜索 "MCP Server" → Install
2. 去 MCP tab → Enable
3. 端口默认 9876
Kiro MCP 配置(已自动写入用户级别)
{
"mcpServers": {
"burpsuite": {
"command": "node",
"args": ["D:\\reverse-skill-private-main\\burp-mcp-full\\mcp-bridge.js"]
}
}
}
适用于所有 MCP 客户端(Kiro / Claude Code / Cursor / Cline / Windsurf)。
跨平台 MCP 配置
Windows:
{ "command": "node", "args": ["<SKILL_ROOT>\\burp-mcp-full\\mcp-bridge.js"] }
Linux / Kali / macOS:
{ "command": "node", "args": ["<SKILL_ROOT>/burp-mcp-full/mcp-bridge.js"] }
<SKILL_ROOT>替换为本包的实际安装路径。AI 读取 RULES.md 时会自动检测并替换。
环境变量(可选)
| 变量 | 默认值 | 说明 |
|---|---|---|
BURP_MCP_HOST |
127.0.0.1 |
Burp HTTP API 地址 |
BURP_MCP_PORT |
9876 |
Burp HTTP API 端口 |
如果 Burp 跑在远程机器或不同端口,设置这两个环境变量即可。
重要:协议说明
本扩展通过 stdio MCP 桥接器(mcp-bridge.js)实现标准 MCP JSON-RPC 2.0 协议:
- Burp 扩展监听
127.0.0.1:9876(自定义 HTTP API) mcp-bridge.js将标准 MCP stdio 协议转发到 HTTP API- 所有 MCP 客户端通过 stdio 与桥接器通信
前提:Burp Suite 必须在运行且扩展已加载。
健康检查:GET http://127.0.0.1:9876/health
工具列表:GET http://127.0.0.1:9876/tools
使用场景与工作流
场景 1:AI 辅助流量分析(最常用)
何时使用:浏览器挂 Burp 代理浏览目标网站后,让 AI 分析所有捕获的流量
工作流:
1. 浏览器设置 Burp 代理 (127.0.0.1:8080)
2. 正常浏览目标网站(登录、操作功能)
3. 告诉 AI:"分析 Burp 代理历史中的所有请求,找出安全问题"
4. AI 调用 proxy_history → 获取所有请求
5. AI 调用 proxy_detail → 查看可疑请求的完整内容
6. AI 调用 search_history → 用正则搜索敏感信息
7. AI 输出发现的漏洞列表
示例 Prompt:
分析我 Burp 代理历史中 personalblog.fun 的所有请求。
按 OWASP Top 10 分类,找出潜在漏洞。
对可疑端点,发到 Repeater 让我手动验证。
场景 2:自动化枚举攻击(Intruder)
何时使用:需要对参数做暴力枚举(验证码、ID、路径等)
工作流:
1. AI 调用 intruder_attack_async → 多线程数字范围枚举
2. 或 intruder_attack_wordlist → 字典攻击
3. 或 intruder_cluster_bomb → 多参数笛卡尔积
4. 通过 success_length_not 参数自动识别成功响应
5. AI 报告命中结果
示例调用:
{
"tool": "intruder_attack_async",
"params": {
"url_template": "https://target.com/api/verify?code=@@",
"method": "POST",
"from": 0,
"to": 999999,
"pad_digits": 6,
"threads": 50,
"success_length_not": 176
}
}
场景 3:OOB 漏洞检测(Collaborator)
何时使用:测试 SSRF、XXE、盲注等需要外带数据的漏洞
工作流:
1. AI 调用 collaborator_generate → 生成 payload
2. AI 将 payload 注入到请求中发送
3. 等待几秒
4. AI 调用 collaborator_poll → 检查是否有回连
5. 有回连 = 漏洞确认
场景 4:请求修改与重放(Repeater)
何时使用:需要修改请求参数验证漏洞
工作流:
1. AI 调用 proxy_detail → 获取原始请求
2. AI 调用 repeater_modify_send → 修改 header/body 后重发
3. 分析响应差异
4. 确认漏洞
场景 5:自动化 DAST 扫描
何时使用:对目标做全面漏洞扫描
工作流:
1. AI 调用 add_to_scope → 添加目标到范围
2. AI 调用 crawl → 触发爬虫
3. 等待扫描完成
4. AI 调用 scan_results → 获取发现的漏洞
5. AI 调用 scan_issue_detail → 获取漏洞详情
6. AI 生成报告
场景 6:流量自动修改(HTTP Handler)
何时使用:需要自动给所有请求加 header、替换内容
工作流:
1. AI 调用 register_http_handler → 注册自动修改规则
- 自动添加认证 header
- 自动替换请求中的某些值
2. 所有经过 Burp 的请求自动被修改
3. 完成后调用 remove_http_handler 清除规则
场景 7:Cookie/Session 分析
何时使用:分析 session token 的随机性和安全性
工作流:
1. AI 调用 cookie_jar → 获取所有 cookie
2. AI 调用 token_analysis → 分析 token 熵值
3. AI 调用 sequencer → 批量分析 token 随机性
4. 判断 session 是否可预测
完整工具列表(78 个)
Proxy 模块
| 工具 | 参数 | 说明 |
|---|---|---|
proxy_history |
limit, offset, url_filter, method_filter, status_filter | 获取代理历史 |
proxy_detail |
index | 获取指定条目完整请求/响应 |
proxy_websocket |
limit | WebSocket 消息历史 |
proxy_history_filtered |
has_notes, color, limit | 按注解/颜色过滤 |
proxy_clear |
— | 清空历史 |
HTTP 请求
| 工具 | 参数 | 说明 |
|---|---|---|
send_request |
method, url, body, headers | 通过 Burp 发请求 |
repeater_send |
request, host, port, https | 发送并获取响应 |
repeater_modify_send |
request, host, replace_header, add_header, replace_body | 修改后重发 |
send_to_repeater |
request, tab_name | 发到 Repeater tab |
Intruder 攻击
| 工具 | 参数 | 说明 |
|---|---|---|
send_to_intruder |
request | 发到 Intruder |
intruder_attack |
url_template, from, to, pad_digits, method, success_length_not | 数字枚举(同步) |
intruder_attack_async |
同上 + threads | 多线程并发枚举 |
intruder_attack_wordlist |
url_template, wordlist, method | 字典攻击 |
intruder_pitchfork |
url_template, placeholders, method | 多参数并行 |
intruder_cluster_bomb |
url_template, placeholders, max_requests | 笛卡尔积 |
intruder_battering_ram |
url_template, wordlist, placeholder | 同 payload 填所有位置 |
intruder_with_options |
同上 + throttle_ms, payload_encoding, grep_extract, record_time | 高级选项 |
Scanner
| 工具 | 参数 | 说明 |
|---|---|---|
scan |
url | 扫描引导 |
scan_active |
request, host, port | 主动扫描指定请求 |
scan_results |
limit | 获取漏洞列表 |
scan_issue_detail |
index | 漏洞详情 |
crawl |
url | 爬虫 |
Scope
| 工具 | 参数 | 说明 |
|---|---|---|
get_scope |
url | 查询是否在范围内 |
add_to_scope |
url | 添加 |
remove_from_scope |
url | 移除 |
Collaborator
| 工具 | 参数 | 说明 |
|---|---|---|
collaborator_generate |
count | 生成 OOB payload |
collaborator_poll |
— | 轮询交互 |
编码/工具
| 工具 | 参数 | 说明 |
|---|---|---|
encode |
input, type(base64/url/hex) | 编码 |
decode |
input, type | 解码 |
payload_process |
input, operation | 高级处理(md5/sha1/sha256/reverse等) |
convert_request |
request, convert_to | 转换请求方法 |
export_request |
request, host, format(curl/python) | 导出为代码 |
generate_csrf_poc |
request, host | 生成 CSRF PoC |
extract_from_response |
index, regex | 正则提取响应内容 |
搜索/标注
| 工具 | 参数 | 说明 |
|---|---|---|
search_history |
regex, search_in(url/request/response), limit | 正则搜索 |
highlight |
index, color | 颜色标记 |
annotate |
index, note | 添加注释 |
compare |
index1, index2 | 响应对比 |
配置
| 工具 | 参数 | 说明 |
|---|---|---|
export_config |
— | 导出项目配置 |
import_config |
config | 导入配置 |
set_upstream_proxy |
proxy_host, proxy_port, type | 设置上游代理 |
set_dns_override |
hostname, ip | DNS 覆盖 |
set_http2 |
enable | HTTP/2 开关 |
Handler(自动修改)
| 工具 | 参数 | 说明 |
|---|---|---|
register_http_handler |
header_name, header_value 或 match, replace | 注册自动修改规则 |
remove_http_handler |
— | 清除规则 |
register_proxy_rule |
url_contains | 注册拦截规则 |
remove_proxy_rule |
— | 清除规则 |
分析
| 工具 | 参数 | 说明 |
|---|---|---|
cookie_jar |
limit, domain | Cookie 管理 |
token_analysis |
tokens(array) | Token 熵值分析 |
sequencer |
tokens(array) | 序列随机性分析 |
target_info |
url | 目标技术栈识别 |
系统
| 工具 | 参数 | 说明 |
|---|---|---|
burp_version |
— | Burp 版本信息 |
add_issue |
name, url, detail, severity | 手动添加漏洞 |
extensions_list |
— | 扩展信息 |
save_project |
— | 保存项目 |
log |
message, level | 写日志 |
AI 渗透测试最佳实践 Prompt
全面分析 Prompt
你是一名高级渗透测试工程师。请分析 Burp 代理历史中的所有请求:
1. 按 OWASP Top 10 分类潜在漏洞
2. 对每个发现给出风险等级和利用方法
3. 将高风险请求发到 Repeater
4. 不要发送破坏性请求
5. 生成结构化报告
定向攻击 Prompt
目标:https://target.com/api/
1. 搜索代理历史中所有 API 端点
2. 识别认证/授权问题
3. 测试 IDOR(修改 ID 参数)
4. 测试 Mass Assignment(添加额外字段)
5. 报告所有发现
验证码爆破 Prompt
使用 intruder_attack_async 对以下端点进行 6 位数字验证码枚举:
URL: https://target.com/api/verify?code=@@
方法: POST
范围: 000000-999999
线程: 50
成功判断: 响应长度不等于 176
与技能路由的集成
触发条件
当用户提到以下关键词时,自动使用 BurpSuite MCP:
- "Burp 分析"、"代理历史"、"抓包分析"
- "Intruder 爆破"、"枚举攻击"
- "Repeater 重放"、"修改请求"
- "Collaborator"、"OOB 测试"
- "DAST 扫描"、"主动扫描"
前置检查
- 确认 Burp 是否在运行:
GET http://127.0.0.1:9876/health - 如果不在线 → 提示用户启动 Burp
- 如果未安装 → 提供下载链接和安装步骤
与其他 skill 的配合
js-reverse发现加密逻辑 → Burp MCP 发送解密后的请求pentest-toolsNmap 发现 Web 服务 → Burp MCP 做深度测试browser-automation自动化浏览 → Burp 捕获流量 → AI 分析
实战案例集(12 个场景)
案例 1:IDOR 漏洞自动发现
场景:目标网站有用户资料接口 /api/user/123,怀疑存在越权
AI 操作流程:
1. proxy_history → 过滤包含 /api/user/ 的请求
2. proxy_detail → 获取原始请求
3. repeater_modify_send → 修改 ID 参数(123→124→125)
4. compare → 对比不同 ID 的响应
5. 如果能看到其他用户数据 → 确认 IDOR
Prompt 示例:
从 Burp 代理历史中找到所有包含用户 ID 的 API 请求。
逐个修改 ID 参数(+1, -1, 0, 99999),对比响应。
如果能获取其他用户数据,标记为 IDOR 漏洞。
案例 2:JWT Token 安全分析
场景:目标使用 JWT 认证,需要分析 token 安全性
AI 操作流程:
1. search_history → 搜索 "Authorization: Bearer" 或 "token"
2. extract_from_response → 提取所有 JWT token
3. decode → Base64 解码 JWT header 和 payload
4. token_analysis → 分析 token 熵值
5. 检查算法(none/HS256 弱密钥/RS256→HS256 混淆)
Prompt 示例:
搜索代理历史中所有 JWT token。
解码分析:算法是否安全?是否有敏感信息泄露?
尝试 none 算法绕过和弱密钥爆破。
案例 3:API 端点全面发现与测试
场景:黑盒测试一个 SPA 应用,需要发现所有 API 端点
AI 操作流程:
1. 用户浏览器挂 Burp 代理正常使用网站
2. proxy_history → 获取所有请求
3. search_history → 正则提取 /api/ 开头的路径
4. 对每个端点:
- send_request → 测试未授权访问
- repeater_modify_send → 修改 HTTP 方法(GET→PUT/DELETE)
- intruder_attack_wordlist → 参数模糊测试
5. 汇总所有发现
Prompt 示例:
分析 Burp 代理历史,提取所有 API 端点。
对每个端点测试:
1. 去掉认证 header 看是否能访问(未授权)
2. 换 HTTP 方法(GET→POST→PUT→DELETE)
3. 添加 admin=true / role=admin 参数
报告所有异常响应。
案例 4:SSRF 漏洞检测(配合 Collaborator)
场景:目标有 URL 参数(如头像上传、webhook 配置),怀疑 SSRF
AI 操作流程:
1. collaborator_generate → 生成 5 个 OOB payload
2. search_history → 找到包含 URL 参数的请求
3. repeater_modify_send → 将 URL 参数替换为 Collaborator payload
4. 等待 10 秒
5. collaborator_poll → 检查是否有 DNS/HTTP 回连
6. 有回连 = SSRF 确认
Prompt 示例:
生成 Collaborator payload。
找到代理历史中所有包含 url=、redirect=、callback=、webhook= 参数的请求。
逐个替换为 Collaborator payload 并发送。
10 秒后检查是否有回连。
案例 5:SQL 注入检测
场景:目标有搜索/过滤功能,怀疑 SQL 注入
AI 操作流程:
1. search_history → 找到带参数的 GET/POST 请求
2. intruder_attack_wordlist → 用 SQLi payload 列表测试
wordlist: ["'", "' OR '1'='1", "1 UNION SELECT NULL--", "' AND SLEEP(5)--"]
3. 对比响应长度和时间
4. 时间盲注:intruder_with_options → record_time=true
5. 响应时间 >5s 的 = 可能存在时间盲注
Prompt 示例:
找到代理历史中所有带查询参数的请求。
对每个参数用以下 payload 测试 SQL 注入:
- 单引号报错
- OR 1=1 布尔盲注
- SLEEP(5) 时间盲注
- UNION SELECT 联合查询
记录响应时间,超过 5 秒的标记为疑似时间盲注。
案例 6:XSS 漏洞检测与验证
场景:目标有用户输入点(搜索框、评论、个人资料),测试 XSS
AI 操作流程:
1. search_history → 找到所有 POST 请求(表单提交)
2. intruder_attack_wordlist → 用 XSS payload 列表
wordlist: ["<script>alert(1)</script>", "<img src=x onerror=alert(1)>", "{{7*7}}"]
3. extract_from_response → 检查 payload 是否在响应中原样反射
4. 如果反射 → 确认反射型 XSS
5. 再次访问页面检查是否持久化 → 存储型 XSS
案例 7:认证绕过测试
场景:目标有管理后台,测试认证是否可绕过
AI 操作流程:
1. proxy_history → 找到管理端 API 请求
2. repeater_modify_send → 去掉 Cookie/Token header 重发
3. repeater_modify_send → 用普通用户 token 替换管理员 token
4. repeater_modify_send → 添加 X-Forwarded-For: 127.0.0.1
5. convert_request → 改 HTTP 方法绕过
6. 对比响应:如果返回 200 而非 401/403 → 认证绕过
Prompt 示例:
找到代理历史中所有返回 403 的管理端请求。
对每个请求尝试以下绕过:
1. 去掉认证 header
2. 添加 X-Forwarded-For: 127.0.0.1
3. 添加 X-Original-URL 或 X-Rewrite-URL
4. 改 HTTP 方法(GET→POST, POST→PUT)
5. 路径大小写变换(/Admin → /admin → /ADMIN)
6. 路径添加 ..;/ 或 %2e%2e/
报告所有返回非 403 的尝试。
案例 8:文件上传漏洞测试
场景:目标有文件上传功能,测试是否可上传 WebShell
AI 操作流程:
1. search_history → 找到文件上传请求(multipart/form-data)
2. proxy_detail → 获取原始上传请求
3. repeater_modify_send → 修改文件名和 Content-Type:
- test.php / test.jsp / test.aspx
- Content-Type: image/png(绕过 MIME 检查)
- 双扩展名:test.php.jpg
- 空字节:test.php%00.jpg
4. 检查响应中是否返回上传路径
5. send_request → 访问上传路径验证是否执行
案例 9:Mass Assignment 自动检测
场景:目标使用 REST API,测试是否存在批量赋值漏洞
AI 操作流程:
1. search_history → 找到所有 PUT/PATCH 请求
2. proxy_detail → 获取请求 body 结构
3. repeater_modify_send → 在 body 中添加额外字段:
- "role": "admin"
- "isAdmin": true
- "price": 0
- "verified": true
4. send_request → GET 用户信息验证字段是否被修改
Prompt 示例:
找到代理历史中所有 PUT/PATCH 请求。
对每个请求的 JSON body 添加以下字段后重发:
- role: admin
- isAdmin: true
- status: active
- balance: 99999
然后 GET 对应资源检查字段是否被修改。
案例 10:验证码/OTP 暴力破解
场景:目标有验证码验证接口,测试是否有速率限制
AI 操作流程:
1. search_history → 找到验证码验证请求
2. intruder_attack_async → 多线程枚举
- url_template: https://target.com/api/verify?code=@@
- from: 0, to: 999999, pad_digits: 6
- threads: 50
- success_length_not: <失败响应长度>
3. 如果没有被限速 → 漏洞确认
4. 如果命中 → 获取有效验证码
案例 11:CORS 配置错误利用
场景:测试目标的 CORS 配置是否允许任意来源
AI 操作流程:
1. proxy_detail → 获取一个认证后的 API 请求
2. repeater_modify_send → 添加 Origin: https://evil.com
3. extract_from_response → 检查 Access-Control-Allow-Origin
4. 如果返回 evil.com 或 * → CORS 配置错误
5. generate_csrf_poc → 生成利用 PoC
案例 12:完整渗透测试自动化流程
场景:对一个新目标做完整的 Web 渗透测试
AI 完整操作流程:
Phase 1: 信息收集
1. add_to_scope → 添加目标
2. crawl → 爬取站点
3. proxy_history → 获取所有发现的页面
4. target_info → 识别技术栈
5. search_history → 提取所有 API 端点
Phase 2: 漏洞扫描
6. scan_active → 对关键请求做主动扫描
7. scan_results → 获取自动发现的漏洞
8. 对每个端点做手动测试(SQLi/XSS/IDOR/SSRF)
Phase 3: 漏洞利用
9. intruder_attack → 对确认的漏洞做深度利用
10. collaborator_generate + collaborator_poll → OOB 验证
11. repeater_modify_send → 手动验证和 PoC 构造
Phase 4: 报告
12. scan_results + proxy_history → 汇总所有发现
13. export_request → 导出关键请求为 curl 命令
14. generate_csrf_poc → 生成 PoC
15. AI 生成完整渗透测试报告
与其他 Skill 的联动场景
JS 逆向 + Burp MCP
场景:前端 JS 加密了请求参数
1. js-reverse skill → 分析加密逻辑,提取密钥
2. register_http_handler → 注册自动解密/加密规则
3. 之后所有经过 Burp 的请求自动被处理
4. Intruder/Repeater 可以直接操作明文参数
APK 逆向 + Burp MCP
场景:Android APP 的 API 需要签名
1. apk-reverse skill → 逆向签名算法
2. register_http_handler → 注册自动签名规则
3. 所有请求自动带正确签名
4. 可以自由修改参数做测试
浏览器自动化 + Burp MCP
场景:需要自动化浏览网站同时分析流量
1. browser-automation skill → Playwright 自动浏览
2. 浏览器设置 Burp 代理
3. 自动化完成后 → proxy_history 获取所有流量
4. AI 分析所有请求找漏洞
IDA 逆向 + Burp MCP
场景:分析一个 Web 应用的后端二进制
1. 通过 Burp 抓到 API 请求格式
2. ida-reverse skill → 逆向后端处理逻辑
3. 发现内存溢出/逻辑漏洞
4. 回到 Burp → 构造利用 payload
用户未安装 BurpSuite 时的引导
当 AI 检测到 http://127.0.0.1:9876/health 无响应时,输出以下引导:
⚠️ **BurpSuite MCP 服务不可用**
**下载安装 BurpSuite**:
- 官方:https://portswigger.net/burp/releases
- Linux / Kali:`sudo apt install burpsuite` 或官方 .jar
- macOS:官方 .dmg
- **禁止**引导破解包 / 汉化一键启动版
**安装步骤(Windows)**:
1. 从 PortSwigger 安装 Professional 或 Community
2. 用官方启动器启动
**安装步骤(Linux/Kali)**:
1. `java -jar burpsuite_pro.jar` 启动
2. 或使用 Kali 预装版:Applications → Web Application Analysis → Burp Suite
**加载 MCP 扩展**:
1. 编译(仅首次):
- Windows: 双击 `<SKILL_ROOT>\burp-mcp-full\build.bat`
- Linux/macOS: `cd <SKILL_ROOT>/burp-mcp-full && chmod +x build.sh && ./build.sh`
2. 打开 Burp → Extensions → Installed → Add
3. Extension Type: Java
4. Select file: `<SKILL_ROOT>/burp-mcp-full/build/libs/burp-mcp-full.jar`
5. 看到 `[MCP] Server started on http://127.0.0.1:9876` 即成功
**配置 MCP 客户端**:
在你的 AI 客户端 MCP 配置中添加:
```json
{
"mcpServers": {
"burpsuite": {
"command": "node",
"args": ["<SKILL_ROOT>/burp-mcp-full/mcp-bridge.js"]
}
}
}
将
<SKILL_ROOT>替换为本包实际路径。Windows 用\\,Linux/macOS 用/。
验证:
curl http://127.0.0.1:9876/health
# 应返回 {"status":"ok","version":"2.0.0","tools":[...]}
安装完成后告诉我,我继续当前任务。
---
## 常见问题
### Q: 端口 9876 被占用怎么办?
修改 `BurpMcpExtension.java` 中的端口号,重新编译。或关闭占用端口的程序。
### Q: 扩展加载失败?
确认 Burp 使用的 Java 版本 ≥ 21。本扩展用 JDK 21 编译。
### Q: 响应是加密的怎么办?
用 `extract_from_response` + 外部解密脚本处理。或在 `register_http_handler` 中注册自动解密规则。
### Q: Intruder 攻击太慢?
使用 `intruder_attack_async` 并设置 `threads: 100+`。注意不要打崩目标。
### Q: 如何配合代理池使用?
调用 `set_upstream_proxy` 设置上游代理为 ProxyCat 的端口,实现 IP 轮换。