一个将完整的 Montoya API 暴露为本地 REST API 的 Burp Suite 扩展,并带有 Swagger UI
Burp 的 API/MCP 功能有限——reburp 是一个 Burp Suite 扩展,将完整的 Montoya API 以本地提供的 OpenAPI REST API 形式暴露出来,专为你的 AI 代理优化。
Issues |
reburp 让 Burp Suite 变得可脚本化。它作为 Java 扩展加载,并通过 http://127.0.0.1:9090 上的 HTTP REST API 提供
Montoya API,
附带 OpenAPI 规范和 Swagger UI。你在 Burp 中点击操作的任何功能——读取代理历史、发送请求、编辑作用域、运行
扫描、解码令牌——都变成代理或 curl 命令行可以发起的 JSON 调用。
它与 burp-interaction 代理技能配合使用,让 AI
助手可以直接驱动 Burp。
你的代理现在可以通过 REST 驱动的 Burp 功能:
从 Releases 获取最新的 reburp-*.jar,或
从源码构建(需要 Java 17+)。
每个 reburp 版本都针对最低 Burp Suite (Montoya) 版本构建。在较旧的 Burp 上, 请从 Releases 获取匹配的 jar。
git clone https://github.com/forefy/reburp.git
cd reburp
./gradlew shadowJar
# Output: build/libs/reburp.jar (plus a versioned copy, reburp-<version>.jar)
加载 reburp.jar 而不是带版本号的副本。Burp 会从加载扩展的路径重新加载扩展,
而带版本号的名称在每次发布时都会变化,因此不带版本号的名称在升级后能持续重新加载,
而不会悄悄让你停留在之前的构建上。
如果未设置 JAVA_HOME,请将其指向你的 JDK:
JAVA_HOME=/path/to/jdk17 ./gradlew shadowJar
build/libs/reburp.jar(或你从 Releases 下载的 reburp-*.jar)Burp 中会出现一个 reburp 标签页,实时显示每个 REST 调用。
每一行是一个 REST 调用。选中它会显示 API 请求和响应,以及 reburp 代表你向目标发送的 请求和响应。
加载后,在浏览器中打开:
该规范是请求和响应格式的权威来源。
| 分组 | 前缀 | 亮点 |
|---|---|---|
| Status | /api/status | 扩展信息、Burp 版本 |
| Proxy | /api/proxy/ | 历史、搜索、注释、拦截开关、WebSocket 历史 |
| Site Map | /api/sitemap/ | 列表、搜索 |
| Scope | /api/scope/ | 检查 URL 是否在作用域内、添加/移除作用域规则 |
| HTTP | /api/http/ | 发送 HTTP/1.1 和 HTTP/2、认证令牌注入、解析、对比、参数、反射、插入点、Cookie |
| Messages | /api/http/message/ | 检查和重写请求与响应:标头、参数、标记、MIME 类型、时序 |
| Scanner | /api/scanner/ | 问题、启动审计/爬取、任务状态(仅 Pro) |
| Collaborator | /api/collaborator/ | 生成载荷、轮询交互(仅 Pro) |
| Repeater / Intruder | /api/repeater/、/api/intruder/ | 将请求发送到 Repeater 和 Intruder |
| Request Engine | /api/http/engine/ | 高吞吐异步请求引擎:资源池、并发限制、限流、重试、实时统计、暂停/恢复/取消、结果(Burp 2026.x) |
| Config | /api/config/ | 获取/设置项目与用户选项、任务引擎状态 |
| Match & Replace | /api/proxy/match-replace/ | 列出、添加、移除代理匹配替换规则 |
| Sessions | /api/sessions/ | 列出和删除会话处理规则(Burp 没有添加标头操作) |
| Engagement | /api/engagement/ | CSRF PoC 生成器、内容发现、查找引用、发送到解码器 |
| Bambda | /api/bambda/ | 导入 Bambda 脚本、生成过滤链 |
| Organizer | /api/organizer/ | 列出条目、将请求发送到 Organizer |
| Issues | /api/issues/ | 创建自定义审计问题 |
| Events | /api/events/ | 开启和关闭被动流量观察器,然后读取捕获的事件 |
| Extension Data | /api/extension-data/ | 存储在 Burp 项目文件中的类型化键/值存储 |
| Preferences | /api/preferences/ |
# Is the extension up?
curl -s http://127.0.0.1:9090/api/status
# Last 10 proxy entries
curl -s "http://127.0.0.1:9090/api/proxy/history?limit=10"
# Send a request through Burp
curl -s http://127.0.0.1:9090/api/http/send \
-H 'Content-Type: application/json' \
-d '{"host":"example.com","port":443,"use_https":true,"method":"GET","path":"/"}'
# Add a host to scope
curl -s http://127.0.0.1:9090/api/scope/include \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com"}'
REST 服务器仅绑定 127.0.0.1,但该端口未经身份验证,并且响应
任何来源。任何能访问 localhost:9090 的东西都可以驱动 Burp,包括你浏览器中
打开的网页。请将该端口视为仅限本地可信,切勿将其暴露到回环之外。
因此,操作系统命令执行默认关闭。除非扩展在 Burp 自身进程环境中看到以下内容,
否则 /api/utils/shell/execute 和 /api/utils/shell/execute-raw 会返回 403:
REBURP_ENABLE_SHELL=1
设置后,任何能访问该端口的来源都会在主机上获得远程代码执行。只有在你接受这一点时才启用它。
每次调用都会写入扩展输出标签页。
GET /api/utils/shell/status 报告它是否开启,且从不要求它开启。
“完整 Montoya API”的说法由 tools/api_coverage.py 机械验证,
CI 构建工作流 在每次推送时运行它,如果有任何可映射的
方法未被暴露就会失败。行为由 tools/smoke_test.py 针对已加载的扩展单独进行测试。
9090。如有需要,修改 BurpRestApiExtension.kt 中的 port 并重新构建。compileOnly - 它不会被打包;Burp 在运行时提供它。{ "error": "..." }。OpenApiSpec.kt 加上 docs/ 中的片段组装而成。要添加路由
组,请编写 *Paths() 和 *Schemas() 片段,并在 docs/OpenApiSpecExtra.kt 中列出它。欢迎提交问题和拉取请求。在打开 PR 之前,请运行 python3 tools/api_coverage.py 和
./gradlew shadowJar。新的路由组应随附其 OpenAPI 片段,
以保持文档完整。
| 按类型持久化的扩展偏好设置 |
| Logging | /api/logging/ | 写入扩展输出和错误标签页以及 Burp 的事件日志 |
| Activity Log | /api/log/ | 查询 reburp 自身持久化的调用日志 |
| AI | /api/ai/ | Burp AI 状态和聊天(在可用的情况下) |
| Meta | /api/meta/ | Burp 版本组件、扩展加载信息、枚举词汇表 |
| Utilities | /api/utils/ | URL 编码/解码、base64、哈希、JWT 解码、随机字符串、解压缩 |
| Numbers | /api/utils/number/ | 在二进制、八进制、十进制、十六进制和任意进制之间转换 |
| JSON | /api/utils/json/ | 验证、按指针读取和编辑、检查结构、规范化 |
| Bytes | /api/utils/bytes/ | 搜索、切片、追加、分配和检查字节缓冲区 |
| Ranking | /api/utils/rank | 按每个交换看起来的异常程度对代理历史进行排名 |
| Shell | /api/utils/shell/ | 操作系统命令执行。默认禁用,参见安全 |