[!UPDATE] 此扩展已更新,使用最新的 Burp Montoya Java API。扩展已全面重构,以改善其
UI/UX和性能。这些更改确保扩展现代化并经过优化。
OpenAPI 的 API 测试设计的 Burp Suite 扩展
OpenAPI规范(OAS)定义了一种标准的、编程语言无关的RESTAPI接口描述,使人和计算机能够发现并理解服务的能力,而无需访问源代码、额外文档或检查网络流量。当通过OpenAPI正确定义时,消费者可以用最少的实现逻辑来理解和与远程服务交互。与接口描述对底层编程所做的工作类似,OpenAPI规范消除了调用服务时的猜测工作。机器可读的
API定义文档的用例包括但不限于:交互式文档;用于文档、客户端和服务器的代码生成;以及测试用例的自动化。OpenAPI文档描述API的服务,并以YAML或JSON格式呈现。这些文档可以静态生成并提供,也可以从应用程序动态生成。
对基于 OpenAPI 的 API 进行安全评估可能是一项繁琐的任务,因为 Burp Suite(行业标准)缺乏原生的 OpenAPI 解析能力。解决这种情况的方法是使用第三方工具(例如 SOAP-UI)或实现自定义脚本(通常基于每次交互)来处理 OpenAPI 文档的解析,并将结果集成/链接到 Burp Suite,以利用其一流的扫描能力。
openapi-parser 是一个 OpenAPI 解析器,旨在通过允许安全专业人员使用 Burp Suite 作为独立工具来简化基于 OpenAPI 的 API 安全评估的整个过程。
OpenAPI 文档。扩展可以通过 目标 -> 站点地图 上下文菜单中的 发送到 Swagger 解析器 功能直接从 URL 获取 OpenAPI 文档。OpenAPI 2.0/3.0 规范(OAS)的 OpenAPI 文档,以前称为 Swagger 规范。Comparer、Intruder、Organizer、Repeater、Scanner、Site map 和 Scope 等 Burp 工具。OpenAPI Parser)”选项卡中查看编辑后的请求。API 调用,并/或为报告目的对其进行颜色编码。CSV 的功能,允许用户轻松地将选定的 API 请求以 CSV 格式导出,以便进一步分析或报告。JSON 和 YAML 格式。操作系统:兼容 Linux、macOS 和 Windows 操作系统。
Java 开发工具包(JDK):版本 11 或更高。
Burp Suite Professional 或 Community 版:版本 2023.11.1.3 或更高。
[!IMPORTANT] 请注意,使用低于
2023.3.2的版本可能导致 java.lang.NoSuchMethodError。为避免此问题,务必使用指定版本或更新版本。
版本 8.5 或更高(推荐)。项目仓库中提供了 build.gradle 文件。JAVA_HOME 环境变量设置为指向 JDK 安装目录。请确保在构建和运行项目之前满足所有系统要求,包括兼容版本的 Burp Suite。注意,项目的外部依赖项将在构建过程中由 Gradle 自动管理和安装。遵守要求将有助于避免潜在问题,并减少在项目仓库中打开新问题的需要。
确保已安装并配置了 Gradle。
下载 openapi-parser 仓库:
git clone https://github.com/aress31/openapi-parser
cd .\openapi-parser\
构建独立 jar:
./gradlew fatJar
Burp Suite要在 Burp Suite 中安装 openapi-parser,首先转到 Extensions 选项卡,点击 Add 按钮。然后,选择位于 .\build\libs 文件夹中的 openapi-parser-all jar 文件以加载扩展。
或者,您可以完全跳过 编译 步骤,直接从 BApp 商店 下载扩展。
注意:在 BApp 商店 上分发的版本可能落后于此仓库中的版本。
OpenAPI 模式,收集所有嵌套参数及其示例/类型。MyHttpRequest 代替 RequestWithMetadata。GUI 更改 API 调用。API 密钥)。Param 列,添加参数类型(例如 inquery、inbody)。请参阅 TODO 查看其他待完成的任务。
2016 年 7 月,在 PortSwigger 支持论坛 上发布改进请求后,我决定主动自己实现一个解决方案。
该扩展仍在开发中,非常欢迎反馈、评论和贡献。
如果此扩展为您在安全评估中节省了时间和麻烦,请考虑赞助一杯咖啡 ☕ 给开发者,以示支持。毕竟,咖啡是驱动开发的燃料。只需点击页面顶部的 Sponsor 按钮,或 点击此处 来贡献,让咖啡因继续流淌。💸
发现了一个错误?好吧,别让它到处乱爬!让我们一起像两个错误耳语者一样把它压扁!🐛💪
请在 GitHub issues 跟踪器 上报告任何问题。我们将共同使这个扩展像在核末日中幸存下来的蟑螂一样可靠!🚀
想用您疯狂的编码技能大展身手?💻
太棒了!欢迎贡献,并非常感谢。请在 GitHub pull requests 跟踪器 上提交所有 PR。我们可以一起让这个扩展更令人惊叹!🚀
请参阅 LICENSE。