Cy-S3c/BurpMCP-Ultra
GitHub: Cy-S3c/BurpMCP-Ultra
面向 Burp Suite Professional 的 AI 驱动 MCP 服务器扩展,通过 149 个工具将 Burp 的全部能力暴露给 Claude Code 等 AI 客户端,实现自然语言驱动的自动化渗透测试与漏洞分析。
Stars: 140 | Forks: 17
# BurpMCP-Ultra
**最强大的 Burp Suite Professional MCP 服务器。**
只需将一个 JAR 文件拖入 Burp,连接 Claude Code(或任何 MCP 客户端),即可通过 AI agent 以编程方式驱动 Burp Suite 的每一个部分。
[](https://github.com/Cy-S3c/BurpMCP-Ultra/releases)
[](#license)
[](https://portswigger.net/burp)
[](https://kotlinlang.org)
[](#tools)
[](https://t.me/D4RK_V0RT3X)
**149 个工具** • **8 个资源** • **17 种事件类型** • 实时仪表板 • 加强的本地安全
[快速开始](#quick-start) •
[工具](#tools) •
[功能](#highlight-features) •
[安全性](#security-model) •
[仪表板](#web-dashboard) •
[配置指南](#setup-guides) •
[联系方式](#contact--support)
BurpMCP-Ultra 是一个原生 **Kotlin** Burp Suite 扩展,内置了一个 **MCP (Model
Context Protocol)** 服务器。它通过 token 安全的本地 SSE 传输,将 Burp 的 Montoya API 暴露为 149 个结构化工具,使得 AI agent 可以执行代理历史分析、主动扫描、fuzzing、竞态条件、OOB 测试、自定义扫描检查和引导式漏洞利用——所有这些都通过自然语言完成。
## 为什么选择 BurpMCP-Ultra?
| | BurpMCP-Ultra | burp-ai-agent | PortSwigger 官方 |
|---|:---:|:---:|:---:|
| **MCP 工具** | **149** | 53 | 12 |
| **自定义扫描检查** | BCheck + 脚本 | – | – |
| **引导式注入探测** | SQLi / SSTI / LFI 判定 | – | – |
| **JWT 攻击** | alg:none, RS→HS, 破解 | – | – |
| **访问控制扫描** | 跨身份的 IDOR / privesc | – | – |
| **WebSocket 测试** | 全生命周期 | – | – |
| **内置 Fuzzer** | 3 种模式 (FUZZ / Marker / Offset) | – | – |
| **竞态条件测试** | 单包攻击 | – | – |
| **API Schema 导入** | OpenAPI / Swagger + `$ref` | – | – |
| **被动情报提取** | 30+ 种模式,基于熵去噪 | – | – |
| **信息收集 (Recon)** | JS endpoint,内容/参数发现 | – | – |
| **实时仪表板** | Web + Swing | – | – |
| **加强的本地安全** | Host + Origin + token,作用域控制 | – | – |
| **Collaborator OOB** | 完整的创建 / 轮询 / 关联 | 部分 | 部分 |
## 快速开始
### 1. 构建
```
git clone https://github.com/Cy-S3c/BurpMCP-Ultra.git
cd BurpMCP-Ultra
./gradlew shadowJar
```
输出:`build/libs/burpmcp-ultra-2.1.0.jar` (~13 MB)。必须安装 **JDK 17–21** — 请参阅[从源码构建](#building-from-source)。预构建的 JAR 可以在 [Releases](https://github.com/Cy-S3c/BurpMCP-Ultra/releases) 页面找到。
### 2. 加载到 Burp
1. Burp Suite Pro → **Extensions** → **Add**
2. 选择该 JAR
3. **BurpMCP-Ultra** 标签页将出现,显示绿色的“Running”状态和您的连接 token
### 3. 连接 Claude Code
```
{
"mcpServers": {
"burp": {
"type": "sse",
"url": "http://127.0.0.1:9876/",
"headers": {
"Authorization": "Bearer PASTE_TOKEN_FROM_SERVER_TAB"
}
}
}
}
```
添加到 `~/.claude.json` 或您项目的 `.mcp.json` 中。
### 4. 打开仪表板
浏览 **http://127.0.0.1:9878** 以查看实时 Web 仪表板。
## 工具
涵盖 36 个类别的 **149 个 MCP 工具**。名称是稳定的;权威统计数量为 `server.tools.size`,显示在 Server 标签页中。
### Proxy (13)
| 工具 | 描述 |
|------|-------------|
| `proxy_history` | 获取 HTTP 代理历史记录,支持过滤(host、method、status、MIME、scope) |
| `proxy_history_search` | 正则表达式搜索代理历史记录(URL、headers、body) |
| `proxy_websocket_history` | 获取 WebSocket 代理历史记录 |
| `proxy_websocket_history_search` | 正则表达式搜索 WebSocket 历史记录 |
| `proxy_intercept_enable` / `proxy_intercept_disable` / `proxy_intercept_status` | 控制和检查拦截 |
| `proxy_annotate` | 为历史记录条目添加高亮颜色和注释 |
| `proxy_set_request_rule` / `proxy_set_response_rule` | 自动修改/丢弃/标记匹配的代理流量 |
| `proxy_list_rules` / `proxy_remove_rule` | 管理代理规则 |
| `proxy_auto_auth` | 一键为所有匹配的请求注入 auth-header |
### HTTP (13)
| 工具 | 描述 |
|------|-------------|
| `http_send_request` | 发送 HTTP 请求(结构化或原始格式,HTTP/1.1 或 HTTP/2) |
| `http_send_requests_parallel` | 并行发送多个请求(批量操作、竞态) |
| `http_send_request_chain` | 多步请求序列,支持在步骤间提取 token |
| `http_send_raw_bytes` | 用于 smuggling 和 CRLF 注入的字节级请求 |
| `http_fuzz` | 内置 Fuzzer — FUZZ 关键字、`§marker§` 或字节偏移模式 + payload 库 |
| `http_race` | 竞态条件测试 — 同时触发 N 个请求 |
| `http_cookie_jar_get` / `http_cookie_jar_set` | 读写 Burp 的 cookie jar |
| `http_analyze_keywords` | 分析响应中关键字的出现情况 |
| `http_analyze_variations` | 检测响应变化(盲注) |
| `http_set_traffic_rule` / `http_list_traffic_rules` / `http_remove_traffic_rule` | 全局请求/响应规则 |
### Scanner (13)
| 工具 | 描述 |
|------|-------------|
| `scanner_start_crawl` | 从种子 URL 开始进行 Web 爬取 |
| `scanner_start_audit` | 开始主动/被动扫描,带有可选的 auth 配置 |
| `scanner_task_status` / `scanner_task_list` / `scanner_task_delete` | 管理扫描/爬取任务 |
| `scanner_task_add_request` | 将请求添加到正在运行的审计中 |
| `scanner_task_issues` | 从特定任务获取问题 |
| `scanner_get_all_issues` | 获取所有问题,支持严重性/置信度过滤 |
| `scanner_generate_report` | 生成 HTML/XML 扫描报告 |
| `scanner_create_issue` | 创建自定义审计问题 |
| `scanner_import_bcheck` | 导入 BCheck 脚本以进行自定义扫描 |
| `scanner_register_check` / `scanner_unregister_check` | 注册 / 注销自定义扫描检查 |
### Collaborator (7)
| 工具 | 描述 |
|------|-------------|
| `collaborator_create_client` | 创建 Collaborator 客户端以进行 OOB 测试 |
| `collaborator_restore_client` | 从其密钥恢复客户端 |
| `collaborator_generate_payload` | 生成 Collaborator payload |
| `collaborator_default_payload` | 在共享的默认客户端上生成 payload(快速 OOB) |
| `collaborator_poll` | 轮询 DNS / HTTP / SMTP 交互(解码 DNS qnames) |
| `collaborator_server_info` | 获取 Collaborator 服务器地址 |
| `collaborator_get_secret` | 获取用于会话持久化的客户端密钥 |
### Intruder & Repeater (4)
| 工具 | 描述 |
|------|-------------|
| `intruder_send` / `intruder_send_with_positions` | 发送到 Intruder(自动或显式位置) |
| `intruder_register_payload_processor` | 注册自定义 payload 处理器 |
| `repeater_send` | 将请求发送到 Repeater 标签页 |
### WebSocket (7)
| 工具 | 描述 |
|------|-------------|
| `websocket_create` | 创建 WebSocket 连接 |
| `websocket_send_text` / `websocket_send_binary` | 发送文本 / 二进制消息 |
| `websocket_close` / `websocket_list` | 关闭 / 列出连接 |
| `websocket_get_messages` | 获取带有方向过滤器的消息 |
| `websocket_set_intercept_rule` | 自动拦截 WebSocket 消息 |
### 攻击与信息收集 (11)
| 工具 | 描述 |
|------|-------------|
| `injection_probe` | 带有判定 oracle 的引导式 **SQLi / SSTI / LFI**(SQL 错误指纹、时间延迟、模板数学求值、文件标记)— 而非盲目的 fuzzing |
| `jwt_attack` | JWT 攻击 — `alg:none`,**RS→HS** 密钥混淆,弱密钥破解,结构分析 |
| `access_control_sweep` | 跨多个身份批量测试 **破坏的访问控制 / IDOR** |
| `graphql_probe` | GraphQL **introspection** + 字段建议枚举 |
| `cors_probe` | 检测 **CORS** 配置错误(反射 / null origin,带有凭证) |
| `recon_fingerprint` | 技术 + WAF 指纹识别 |
| `recon_js_endpoints` | 从 JavaScript 文件中提取 endpoint/URL |
| `recon_content_discovery` | 针对目标的路径 / 内容发现 |
| `recon_param_mine` | 挖掘隐藏和反射的参数 |
| `findings_add` / `findings_list` | agent 去重后的发现工作存储区 |
### 分析 (7)
| 工具 | 描述 |
|------|-------------|
| `analyze_request` / `analyze_response` | 将 HTTP 消息解析为结构化组件 |
| `analyze_find_reflected` | 查找在响应中反射的参数值(XSS 攻击面) |
| `analyze_extract_params` | 提取所有参数(URL、body、cookie、header、JSON) |
| `analyze_insertion_points` | 扫描样式的插入点(包括 JSON-body 叶子节点) |
| `analyze_diff` | 比较两个请求或响应 |
| `analyze_response_body_search` | 在所有代理响应正文中搜索模式 |
### 高级分析 (3)
| 工具 | 描述 |
|------|-------------|
| `auth_diff` | 比较跨权限级别的响应 → IDOR / privesc 判定 |
| `api_import_openapi` | 导入 OpenAPI/Swagger(解析 `$ref`),生成请求,填充 sitemap |
| `passive_intel` | 从代理历史记录中提取 secret/token/IP — 30+ 种模式,基于熵去噪 |
### 实用工具 (12)
| 工具 | 描述 |
|------|-------------|
| `util_url_encode` / `util_url_decode` | URL 编码 / 解码 |
| `util_base64_encode` / `util_base64_decode` | Base64 编码 / 解码 |
| `util_html_encode` | HTML 实体编码 |
| `util_hash` | 哈希(MD5, SHA1, SHA256, SHA384, SHA512) |
| `util_compress` / `util_decompress` | Gzip / deflate / brotli |
| `util_random_string` / `util_random_bytes` | 随机生成器 |
| `util_jwt_decode` | 解码 JWT(header、payload、过期时间) |
| `util_decode_smart` | 自动检测并解码多层编码 |
### 自定义扫描检查 — BCheck (5) + 脚本 (5)
| 工具 | 描述 |
|------|-------------|
| `bcheck_create` | 根据结构化参数生成并部署 BCheck |
| `bcheck_import` | 导入原始 BCheck DSL 脚本 |
| `bcheck_templates` / `bcheck_list` / `bcheck_remove` | BCheck 的模板、列表、删除 |
| `scancheck_create_passive` | 具有多条件匹配的被动检查 |
| `scancheck_create_active` | 带有 payload 链的多步主动检查 |
| `scancheck_templates` / `scancheck_list` / `scancheck_remove` | 脚本检查的模板、列表、注销 |
### Scope 与 Sitemap (8)
| 工具 | 描述|------|-------------|
| `scope_check` / `scope_include` / `scope_exclude` / `scope_get_config` | 目标作用域管理 |
| `sitemap_query` / `sitemap_get_issues` / `sitemap_add_request` / `sitemap_add_issue` | Sitemap 操作 |
### 配置与 Burp (16)
| 工具 | 描述 |
|------|-------------|
| `burp_version` | Burp 版本和版本类型 |
| `burp_export_project_config` / `burp_import_project_config` | JSON 格式的项目配置 |
| `burp_export_user_config` / `burp_import_user_config` | JSON 格式的用户配置 |
| `burp_task_engine_state` / `burp_task_engine_set` | 暂停/恢复所有后台任务 |
| `burp_command_line_args` | 启动参数 |
| `burp_shutdown` | 关闭 Burp(受限控制 — 参见[安全性](#security-model)) |
| `config_proxy_listeners_list` / `config_proxy_listener_add` / `config_proxy_listener_remove` | 管理代理监听器 |
| `config_match_replace_add` / `config_match_replace_list` / `config_match_replace_remove` | 管理匹配和替换规则 |
| `config_upstream_proxy_set` | 配置上游代理(Tor、企业代理) |
### 平台 (25)
| 工具 | 描述 |
|------|-------------|
| `session_create_token_rule` / `session_list_rules` / `session_remove_rule` | 会话处理规则(提取 → 注入) |
| `events_get` / `events_get_by_type` / `events_subscribe` / `events_unsubscribe` / `events_clear` | 事件系统 |
| `persistence_store` / `persistence_get` / `persistence_delete` / `persistence_list` | 项目数据存储 |
| `preference_store` / `preference_get` | 全局首选项 |
| `decoder_send` / `comparer_send` | 发送到 Decoder / Comparer |
| `organizer_send` / `organizer_get_items` | Organizer 管理 |
| `log_message` / `log_event` | Burp 日志记录 |
| `ai_status` / `ai_prompt` | Burp AI 集成(Burp 2025+) |
| `bambda_import` | 导入 Bambda 脚本 |
| `project_info` / `extension_info` | 项目与扩展元数据 |
### 资源 (8)
agent 无需调用工具即可获取的只读 MCP 资源:
`burp://proxy/history` · `burp://proxy/websocket/history` · `burp://scanner/issues` ·
`burp://sitemap` · `burp://scope` · `burp://config/project` · `burp://config/user` ·
`burp://organizer/items`
## 核心功能
### 引导式注入探测
```
injection_probe(
request: "GET /item?id=FUZZ HTTP/1.1\r\nHost: shop.com\r\n\r\n",
host: "shop.com", port: 443,
classes: ["sqli", "ssti", "lfi"] # optional; default all
)
```
使用 `FUZZ` 标记注入点,然后利用确定性 oracle **确认**漏洞 — SQL 错误指纹、时间延迟分析、模板数学求值 (`1337*1337 → 1787569`) 以及文件内容标记 — 仅返回已确认的发现及其触发 payload。对于盲注/OOB 类型,可将 `collaborator_*` 与 `http_fuzz` 配合使用。
### JWT 攻击
```
jwt_attack(token: "eyJ...", mode: "crack", wordlist: ["secret", "changeme", ...])
```
`alg:none` 伪造,**RS→HS** 算法混淆伪造,弱密钥字典破解,以及完整的结构分析。
### 访问控制扫描
```
auth_diff / access_control_sweep
request: "GET /api/users/1 HTTP/1.1\r\nHost: api.com\r\n\r\n",
auth_levels: [
{"name": "admin", "header_name": "Authorization", "header_value": "Bearer admin"},
{"name": "user", "header_name": "Authorization", "header_value": "Bearer user"},
{"name": "none"}
]
```
在不同的身份下重放相同的请求,比较响应差异,并标记 **IDOR**、权限提升和缺失的授权。
### 竞态条件测试
```
http_race(request: "POST /api/transfer HTTP/1.1\r\nHost: bank.com\r\n\r\n{\"amount\":100}",
host: "bank.com", port: 443, count: 20)
```
通过 Burp 的并行引擎同时触发 20 个相同的请求,并分析状态/长度分布,以检测 TOCTOU、双重消费和限制绕过漏洞。
### 内置 Fuzzer(3 种模式)
```
# FUZZ 关键字
http_fuzz(request: "GET /api?id=FUZZ HTTP/1.1\r\nHost: api.com\r\n\r\n", host: "api.com",
port: 443, payloads: ["1", "admin", "../../etc/passwd"])
# §section§ 标记(如 Intruder) | # 字节偏移量: 位置: [[12, 15]]
# 通过以下方式使用内置 payload 库: payload_library: "xss" | "sqli" | "lfi" | ...
```
### 自定义扫描检查
```
# BCheck DSL
bcheck_create(name: "AWS Key Leak", type: "passive_response",
match_pattern: "AKIA[0-9A-Z]{16}", severity: "high", confidence: "firm")
# Script 模式 — 多步主动检查
scancheck_create_active(name: "SSTI", steps: [
{"payload": "{{7*7}}", "response_conditions": [
{"location": "response_body", "pattern": "49", "condition_type": "contains"}]}])
```
### API Schema 导入
```
api_import_openapi(spec_json: "Claude Code (直连 SSE)
``` { "mcpServers": { "burp": { "type": "sse", "url": "http://127.0.0.1:9876/", "headers": { "Authorization": "Bearer PASTE_TOKEN_FROM_SERVER_TAB" } } } } ``` token 来自 **Server** 标签页。endpoint 是根路径 `/`(不是 `/sse`);token 也可以作为 `?token=…` 或 `mcp_token` cookie 传递。配置文件位置:`~/.claude.json`(全局)或 `.mcp.json`(每个项目)。通过 Caddy 使用 Claude Code(推荐以保持稳定性)
Caddy 可防止 SSE 超时断开连接,并提供可靠的缓冲。 ``` sudo apt install caddy ``` `/etc/caddy/Caddyfile`: ``` :9900 { reverse_proxy 127.0.0.1:9876 { transport http { read_timeout 0 write_timeout 0 response_header_timeout 0 } flush_interval -1 header_up Connection {>Connection} header_up Upgrade {>Upgrade} } } ``` ``` sudo systemctl restart caddy ``` 然后将您的配置指向端口 9900: ``` { "mcpServers": { "burp": { "type": "sse", "url": "http://127.0.0.1:9900/", "headers": { "Authorization": "Bearer PASTE_TOKEN_FROM_SERVER_TAB" } } } } ``` 预构建的 Caddyfile: [`configs/Caddyfile`](configs/Caddyfile)Claude Desktop (通过代理的 stdio)
Claude Desktop 仅支持 stdio 传输。使用 supergateway 进行桥接: ``` { "mcpServers": { "burp": { "command": "npx", "args": ["-y", "supergateway", "--sse", "http://127.0.0.1:9876/", "--header", "Authorization: Bearer PASTE_TOKEN_FROM_SERVER_TAB"] } } } ```自动化配置脚本
``` chmod +x configs/setup.sh ./configs/setup.sh ``` 构建 JAR,可选择性地配置 Caddy,并打印要添加的 MCP 配置。
为希望获得 AI 驱动的 Burp Suite 自动化的 bug-bounty 猎手和渗透测试人员而构建。
标签:Burp Suite插件, CISA项目, DLL 劫持, Web安全, 后台面板检测, 大语言模型, 网络安全, 蓝队分析, 隐私保护