BurpSuite MCP Full Control Extension
通过 MCP 协议完整控制 BurpSuite 的所有核心功能。跨平台支持 Windows / Linux (Kali) / macOS。
快速开始
1. 编译扩展
Windows:
cd burp-mcp-full
build.bat
Linux / Kali / macOS:
cd burp-mcp-full
chmod +x build.sh
./build.sh
构建脚本会自动:检测 JDK 21+、下载依赖(montoya-api 2025.5 / gson / nanohttpd)、编译、把扩展描述符(META-INF/extensions/burp-extension.properties)打入 jar、打包 fat jar。无需 Gradle。
输出:build/libs/burp-mcp-full.jar。
2. 加载到 Burp
Burp Suite → Extensions → Add → Java → 选择 build/libs/burp-mcp-full.jar
加载后在 Output 看到:
[MCP] Server started on http://127.0.0.1:9876
3. 鉴权(v2 起默认启用)
扩展启动时自动生成随机 token 并写入 ~/.burp-mcp-token。mcp-bridge.js 会自动读取该文件并在每个请求携带 Authorization: Bearer <token> 头,无需手动配置。
需要固定 token 时(例如多个客户端共享),可用:
- JVM 参数:
-Dburp.mcp.token=<token> - 环境变量:
BURP_MCP_TOKEN=<token>(同时用于 bridge 侧)
所有 /health、/tools、/(POST)请求均要求携带该头,否则返回 403。CORS 已收敛为仅允许 http://127.0.0.1 来源。
4. 配置 MCP 客户端
在任何 MCP 客户端(Claude Code / Kiro / Cursor / Cline / Windsurf)中添加(stdio 模式):
{
"mcpServers": {
"burpsuite": {
"command": "node",
"args": ["<本目录路径>/mcp-bridge.js"]
}
}
}
5. 开始使用
对 AI 说:"分析 Burp 代理历史中的请求,找出安全漏洞"
功能列表
扩展暴露 78 个工具。常用分类如下(完整列表见 src/main/java/com/burpmcp/McpHttpServer.java 的 getToolList(),或访问 GET http://127.0.0.1:9876/tools,需携带 Authorization 头):
| 分类 | 工具 |
|---|---|
| Proxy 历史 | proxy_history, proxy_detail, proxy_history_filtered, proxy_websocket, proxy_clear, search_history, highlight, annotate, compare |
| 发送请求 | send_request, send_to_repeater, repeater_send, repeater_modify_send, send_to_intruder |
| Intruder 攻击 | intruder_attack, intruder_attack_async, intruder_attack_wordlist, intruder_pitchfork, intruder_cluster_bomb, intruder_battering_ram, intruder_with_options, payload_process |
| 扫描 / 爬取 | scan(主动/被动), scan_active, scan_results, scan_issue_detail, crawl, sequencer |
| Scope / Sitemap | sitemap, target_info, get_scope, add_to_scope, remove_from_scope, add_issue |
| 拦截 / 规则 | intercept_toggle, register_http_handler, remove_http_handler, register_proxy_rule, remove_proxy_rule |
| 编解码 | encode, decode, convert_request, export_request, generate_csrf_poc, extract_from_response, token_analysis |
| Collaborator | collaborator_generate, collaborator_poll |
| 配置 | export_config, import_config, set_upstream_proxy, set_dns_override, set_http2, cookie_jar, save_project, burp_version, extensions_list, log |
扫描/爬取(
scan、scan_active、crawl)需要 Burp Professional。Community 版会返回明确的许可证错误。手动添加的 issue(add_issue)会写入 Site map。
关键工具参数
intruder_attack — 自动化枚举攻击
| 参数 | 说明 |
|---|---|
url_template |
URL 模板,占位符默认 @@ |
placeholder |
占位符字符串(默认 @@) |
from / to |
枚举起止值 |
pad_digits |
补零位数(0 不补) |
method |
HTTP 方法(默认 GET) |
body_template |
请求体模板(含占位符) |
headers |
请求头对象 |
success_length_not |
命中条件:响应长度 ≠ 此值 |
success_contains |
命中条件:响应体包含此字符串 |
scan — 启动审计
| 参数 | 说明 |
|---|---|
url |
目标 URL(必填,自动加入 scope) |
mode |
active(默认)或 passive |
启动后用 scan_results 轮询 issues 与活动审计状态(请求数、错误数、插入点数)。
register_proxy_rule — 代理请求拦截规则
| 参数 | 说明 |
|---|---|
url_contains |
命中条件:URL 包含此串 |
intercept |
true 拦截 / false 放行不拦截(默认 true) |
通过 remove_proxy_rule 注销规则(基于 Registration.deregister(),真正从 Burp 卸载)。
调用示例
查看代理历史
POST http://127.0.0.1:9876
{"tool": "proxy_history", "params": {"limit": 10, "url_filter": "personalblog"}}
发送请求
POST http://127.0.0.1:9876
{"tool": "send_request", "params": {"method": "GET", "url": "https://example.com/api/test"}}
自动化枚举攻击(核心功能)
POST http://127.0.0.1:9876
{
"tool": "intruder_attack",
"params": {
"url_template": "https://target.com/api/verify?code=@@",
"method": "POST",
"from": 0,
"to": 999999,
"pad_digits": 6,
"success_length_not": 176,
"headers": {"User-Agent": "Mozilla/5.0"}
}
}
开关拦截
POST http://127.0.0.1:9876
{"tool": "intercept_toggle", "params": {"enable": false}}
端口配置
默认监听 127.0.0.1:9876。如需更改(例如与 PortSwigger 官方 MCP 扩展同端口冲突):
- Burp 侧:启动 Burp 时传 JVM 参数
-Dburp.mcp.port=9877,或设环境变量BURP_MCP_PORT=9877。 - 桥接侧:MCP 客户端配置里设环境变量
BURP_MCP_PORT=9877与BURP_MCP_HOST=127.0.0.1。
两侧端口必须一致。若 Burp 未运行或端口不通,桥接会在 tools/list 与 tools/call 返回明确的连接错误指引。
故障排查
| 现象 | 排查 |
|---|---|
| Burp Output 无 "[MCP] Server started" | 端口被占用或扩展加载失败,查 Burp Errors 面板 |
| MCP 客户端报 "Burp MCP not connected" | 确认 Burp 已运行且扩展已加载;确认两侧端口一致 |
| 扫描返回 "requires Burp Professional" | 正常,Community 版不支持 Scanner API |
remove_http_handler / remove_proxy_rule 无效 |
确认之前 register_* 返回 success=true |
源码构建(Gradle 可选)
cd burp-mcp-full
gradle jar # 需本机已装 Gradle 8.7+
# 输出: build/libs/burp-mcp-full.jar
推荐使用
build.bat/build.sh(零依赖,自动下载 jar)。Gradle 路径仅作备选。