Burp REST桥接工具

Burp Suite扩展和MCP服务器,允许Claude直接与Burp交互,包括搜索代理历史、读取请求/响应、发送到Repeater、重新发送修改后的请求和检查范围。

  • by Velby
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Velby/burp_mcp_api

使用说明

Burp REST桥

Burp Suite扩展+MCP服务器,允许Claude直接与Burp-search代理交互 历史记录、读取请求/响应、发送到中继器、重新发送修改后的请求和检查范围。

运作原理

Burp Suite
  └── burp-rest-bridge.jar   Java extension — captures all tool traffic,
                              serves a REST API on http://127.0.0.1:8090

burp_mcp.py                  FastMCP server — wraps the REST API as Claude tools
burp_client.py               Python client — importable library + CLI

克劳德与 burp_mcp.py 通过MCP协议。MCP服务器调用扩展的REST API所有内容都保留在本地主机上。

快速开始

bash setup.sh

该脚本安装Python依赖项,使用Claude Code注册MCP服务器,并打印 构建JAR并将其加载到Burp Suite中的分步说明。

Claude工具(通过MCP)

工具 说明
burp_health 检查扩展是否正在运行
burp_hosts 列出所有捕获的主机名
burp_search 按主机、方法、状态、文本、MIME类型、工具搜索历史记录。..可选地包括以匹配为中心的正文片段。
burp_extract 从流量项中提取正则表达式匹配项。指定 extract_in (url、request_headers、request_body、response_headers和response_body)和Python正则表达式模式。仅返回匹配的项目;组控制输出格式(无组=完全匹配,命名=字典,未命名=列表)。
burp_get_items 获取一个或多个项目的结构化请求+响应。大型尸体被自动倾倒到 /tmp 带有预览。使用 json_path 从JSON响应中提取子对象,而不加载全文。
burp_summarize_host 总结主机唯一端点(路径规范化、查询-抓取)、状态分布、身份验证方案和内容类型的API表面。巧妙地分页,这样高容量端点就不会挤掉稀有端点。
burp_repeater_latest 获取中继器发送的最后一个请求
burp_send_to_repeater 将捕获的请求发送到中继器选项卡
burp_repeat 通过可选的字符串替换/标头覆盖/文件上传重新发送捕获的请求
burp_request 通过Burp的代理发送完全自定义的HTTP请求,并可选择上传文件
burp_scope 检查URL是否在Burp的目标范围内

CLI使用情况

python3 burp_client.py health
python3 burp_client.py hosts
python3 burp_client.py history --host api.example.com --method POST --status 4
python3 burp_client.py get 42
python3 burp_client.py repeat 42 --replace "role=user" "role=admin"
python3 burp_client.py scope https://example.com/admin

REST API(端口8090)

GET  /health                  {"status":"ok","count":N,"port":8090}
GET  /proxy/history           search — id, tool, timestamp, url, method, status_code
GET  /proxy/history/{id}      full item — request_text + response_text
GET  /proxy/hosts             sorted list of unique hostnames
GET  /repeater/latest         most recent Repeater send
POST /repeater                send item to Repeater: {"history_id":42,"tab_name":"test"}
GET  /scope?url=...           {"url":"...","in_scope":true}
GET  /                        full API reference

变更后重建

cd extension && ./gradlew jar
# Then in Burp: Ctrl+click the Loaded checkbox to hot-reload