⚠️ 警告:本项目已不再积极维护。
仓库将保留供参考,但不会提供进一步的更新、错误修复或支持。
一个针对 Burp Suite 安全工具的 REST/JSON API。
自 2016 年首次提交以来,burp-rest-api 一直是 BurpSuite 驱动的 Web 扫描自动化的默认工具。许多安全专业人员和组织都依赖此扩展来编排 Burp Spider 和 Scanner 的工作。
burp-rest-api-2.3.2.jar)burpsuite_pro.jar在 Linux、Mac 上:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar:burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
在 Windows 上:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar;burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
重要!!!
burp-rest-api 同时支持旧版 Burp Suite Professional v1.7 和较新的 Burp Suite Professional v2025.x。由于本项目依赖 Burp Extender API,某些功能的行为可能因 Burp 版本而异。例如,v2025.x 中 Burp Suite Scanner 配置不再可自定义。
默认情况下,Burp 以无头模式启动,代理运行在 8080/tcp 端口(仅 localhost),REST 端点运行在 8090/tcp 端口(仅 localhost)。
要从命令行运行 Burp 的 UI 模式,请附加以下参数:
--headless.mode=false
要修改 API 可访问的服务端口,请附加以下参数:
--server.port=8081
或
--port=8081
您还可以修改服务器地址,用于网络地址绑定:
--server.address=192.168.1.2
或
--address=192.168.1.2
以下命令行参数仅供扩展使用,用于配置运行模式和端口号。
--burp.jar=<filename.jar> : 动态加载 Burp JAR,并通过 REST API 暴露。此标志仅适用于 Java <= 1.8!对于更新的 Java 版本,请使用 burp-rest-api.{sh,bat} 脚本。
--burp.ext=<filename.{jar,rb,py} : 在应用程序启动时加载给定的 Burp 扩展。此标志可以重复使用。
--server.port=<port_number> : REST API 端点在给定端口号上可用。--port=<port_number> 可作为简写参数。
--server.address=<network address> : REST API 端点应绑定的网络地址。--address=<address_ip> 可作为简写参数。
--apikey=<customApiKey> : 启用 API 密钥认证以保护 /burp/* 下的 API。如果作为参数传递,customApiKey 必须作为额外的头部包含在每个 HTTP 请求中:"API-KEY: <customApiKey>"。
--headless.mode=<true/false> : 当设置为 false 时,以 UI 模式运行 Burp Suite。否则以无头模式运行 Burp Suite。默认值:系统属性 (java.awt.headless)
传递给可执行 burp-rest-api JAR 的命令行参数会被转发到 Burp Suite JAR。因此,可以将以下 Burp Suite JAR 命令行参数传递给 burp-rest-api JAR,以实现与直接传递给 Burp Suite JAR 相同的功能。
--project-file=<filename> : 打开用于保存工具状态的指定数据项目文件。如果文件不存在,将创建一个新项目。
--config-file=<filename> : 使用所选项目配置文件中的选项打开项目。要加载多个项目配置,可以多次传递此参数,每次使用不同的值。
--user-config-file=<filename> : 使用所选用户配置文件中的选项打开项目。要加载多个用户配置,可以多次传递此参数,每次使用不同的值。
有关项目的更多信息,请参阅 Burp Suite 文档 此处 和 此处。有关扫描仪设置,请参阅“Burp Suite 支持与限制”部分。
如果 burp-rest-api JAR 在未使用 --project-file、--config-file 或 --user-config-file 参数的情况下启动,则 Burp Suite 会使用临时项目文件和某些默认配置启动。临时项目文件在 Burp Suite 启动时创建,运行结束时删除。
有关启动 Burp Suite 时使用的默认配置,请参阅 JAR 中 static 文件夹下的 burp-default-project-options.json 和 burp-default-user-options.json 文件。
Swagger 用于定义 API 文档。启动 JAR 后,访问以下资源以获取 API 文档和 Swagger UI。端口 8090 是默认服务器端口。
API 文档:http://localhost:8090/v3/api-docs
Swagger UI:http://localhost:8090/swagger-ui/index.html#
本项目还附带一个用 Java 编写的客户端(BurpClient.java),供其他项目使用。有关 BurpClient.java 的用法,请参阅集成测试文件 BurpClientIT.java。
本项目最初受 Resty-Burp 启发,并与 Doyensec LLC 合作开发。
burp-rest-api 项目团队欢迎来自社区的贡献。如果您希望贡献代码但尚未签署我们的贡献者许可协议 (CLA),当我们打开拉取请求时,我们的机器人将更新该问题。有关 CLA 流程的任何问题,请参阅我们的 CLA FAQ。有关更详细的信息,请参阅 CONTRIBUTING.md 和 FAQ.md。
以下部分包含开始扩展开发的有用信息。
lib 文件夹,将 Burp Suite JAR 文件放入其中,并将其重命名为 "burpsuite_pro.jar",以便运行集成测试 # 构建 jar
./gradlew clean build
如果要在较新的 JVM(JRE > 9)版本上运行扩展,请在复制 burpsuite_pro.jar 和 burp-rest-api.jar 到脚本所在目录后,使用 burp-rest-api-devel.{sh,bat} 启动脚本。
# 在 Unix(Linux、macOS)上
./burp-rest-api-devel.sh
# 在 Windows 上
./burp-rest-api-devel.bat
版权所有 (c) 2016 VMware, Inc. 保留所有权利。 版权所有 (c) 2025 Doyensec LLC. 保留所有权利。
允许以源代码和二进制形式重新分发和使用,无论是否修改,前提是满足以下条件:源代码的再分发必须保留上述版权声明、此条件列表和以下免责声明。二进制形式的再分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表和以下免责声明。
本软件按“原样”提供,版权持有人和贡献者不提供任何明示或暗示的担保,包括但不限于对适销性和特定用途适用性的暗示担保。在任何情况下,版权持有人或贡献者均不对任何直接、间接、偶然、特殊、惩戒性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论该等损害是因合同、严格责任或侵权行为(包括疏忽或其他)引起的,即使已被告知可能发生此类损害。