[!IMPORTANT] 宣布推出 BurpGPT Pro,该版本专为满足专业人士和网络安全精品店的需求而定制。探索一系列强大的功能和用户友好的界面,增强你的能力并确保最佳用户体验。要享受这些优势,请访问我们的网站并阅读文档以获取更多信息。
[!WARNING] 请注意,社区版已不再维护且无法正常运行。要继续接收更新、新功能、错误修复和改进,请考虑升级到专业版。为社区版提交
Issues已不再有用。
burpgpt 利用 AI 的力量来检测传统扫描器可能遗漏的安全漏洞。它将网络流量发送给用户指定的 OpenAI 模型,从而在被动扫描器中实现复杂的分析。该扩展提供可定制的 提示词,使用户能够根据自身特定需求对网络流量分析进行定制。请参阅示例用例部分获取灵感。
该扩展会根据用户的 提示词 和 Burp 发出的实时数据,自动生成一份安全报告,总结潜在的安全问题。通过利用 AI 和自然语言处理,该扩展简化了安全评估流程,为安全专业人员提供了被扫描应用程序或端点的更高级别概览,使其能够更轻松地识别潜在安全问题并优先进行分析,同时覆盖更大的潜在攻击面。
[!WARNING] 数据流量会发送到
OpenAI进行分析。如果你对此有所顾虑,或者将该扩展用于安全关键型应用,请务必仔细考虑这一点,并查阅 OpenAI 的隐私政策以获取更多信息。
[!WARNING] 虽然报告是自动生成的,但仍需安全专业人员进行分类和后处理,因为它可能包含误报。
[!WARNING] 该扩展的有效性在很大程度上取决于用户为所选
GPT模型创建的提示词的质量和精确度。这种有针对性的方法将有助于确保GPT 模型为你的安全分析生成准确且有价值的结果。
被动扫描检查,允许用户通过 占位符 系统将 HTTP 数据提交给 OpenAI 控制的 GPT 模型 进行分析。OpenAI 的 GPT 模型 的强大能力进行全面的流量分析,能够检测出扫描应用程序中除安全漏洞之外的多种问题。最大提示长度,实现对分析中使用的 GPT 令牌 数量的精细控制。OpenAI 模型 可供选择,使他们能够选择最适合自己需求的模型。提示词 的能力,为与 OpenAI 模型 的交互释放无限可能。浏览示例用例获取灵感。Burp Suite 集成,提供所有原生预处理和后处理功能,包括直接在 Burp UI 中显示分析结果,以便高效分析。Burp Event Log 提供故障排除功能,使用户能够快速解决与 OpenAI API 的通信问题。操作系统:支持 Linux、macOS 和 Windows 操作系统。
Java 开发工具包 (JDK):版本 11 或更高。
Burp Suite Professional 或 Community Edition:版本 2023.3.2 或更高。
[!IMPORTANT] 请注意,使用低于
2023.3.2的任何版本可能会导致 java.lang.NoSuchMethodError。为避免此问题,务必使用指定版本或更新版本。
版本 6.9 或更高(推荐)。项目仓库中提供了 build.gradle 文件。JAVA_HOME 环境变量设置为指向 JDK 安装目录。请确保在构建和运行项目之前满足所有系统要求,包括兼容版本的 Burp Suite。请注意,项目的外部依赖将在构建过程中由 Gradle 自动管理和安装。遵守要求将有助于避免潜在问题,并减少在项目仓库中打开新 issue 的需要。
确保已安装并配置 Gradle。
下载 burpgpt 仓库:
git clone https://github.com/aress31/burpgpt
cd .\burpgpt\
构建独立的 jar 包:
./gradlew shadowJar
Burp Suite 中要在 Burp Suite 中安装 burpgpt,首先转到 Extensions 选项卡并点击 Add 按钮。然后,选择位于 .\lib\build\libs 文件夹中的 burpgpt-all jar 文件以加载扩展。
要开始使用 burpgpt,用户需要完成 Settings 面板中的以下步骤(可通过 Burp Suite 菜单栏访问):
OpenAI API 密钥。模型。最大提示大小。此字段控制发送给 OpenAI 的最大 提示词 长度,以避免超出 GPT 模型的 maxTokens(GPT-3 通常约为 2048)。
按照上述配置后,Burp 被动扫描器 会将每个请求通过 OpenAI API 发送给所选的 OpenAI 模型 进行分析,并根据结果生成 信息 级别的发现项。
burpgpt 使用户能够通过 占位符 系统为流量分析定制 提示词。为了包含相关信息,我们建议使用这些 占位符,扩展程序会直接处理这些占位符,允许将特定值动态插入到 提示词 中:
这些 占位符 可以在自定义 提示词 中使用,以动态生成针对被扫描请求的请求/响应分析 提示词。
[!NOTE] >
Burp Suite提供了通过 会话处理规则 或扩展(如 Custom Parameter Handler)支持任意占位符的能力,从而实现对提示词的更大定制。
以下示例用例列表展示了 burpgpt 的定制性和高度可自定义性,使用户能够根据自己的特定需求定制网络流量分析。
识别使用受特定 CVE 影响的加密库的 Web 应用程序中的潜在漏洞:
分析请求和响应数据,查找与受 CVE-{CVE_NUMBER} 影响的 {CRYPTO_LIBRARY_NAME} 加密库相关的潜在安全漏洞:
Web 应用程序 URL:{URL}
加密库名称:{CRYPTO_LIBRARY_NAME}
CVE 编号:CVE-{CVE_NUMBER}
请求头:{REQUEST_HEADERS}
响应头:{RESPONSE_HEADERS}
请求体:{REQUEST_BODY}
响应体:{RESPONSE_BODY}
识别请求和响应数据中与受 CVE-{CVE_NUMBER} 影响的 {CRYPTO_LIBRARY_NAME} 加密库相关的任何潜在漏洞,并报告它们。
扫描使用生物识别身份验证的 Web 应用程序中的漏洞,通过分析与身份验证过程相关的请求和响应数据:
分析请求和响应数据,查找与生物识别身份验证过程相关的潜在安全漏洞:
Web 应用程序 URL:{URL}
生物识别身份验证请求头:{REQUEST_HEADERS}
生物识别身份验证响应头:{RESPONSE_HEADERS}
生物识别身份验证请求体:{REQUEST_BODY}
生物识别身份验证响应体:{RESPONSE_BODY}
识别请求和响应数据中与生物识别身份验证过程相关的任何潜在漏洞,并报告它们。
分析无服务器函数之间交换的请求和响应数据中的潜在安全漏洞:
分析无服务器函数之间交换的请求和响应数据中的潜在安全漏洞:
无服务器函数 A URL:{URL}
无服务器函数 B URL:{URL}
无服务器函数 A 请求头:{REQUEST_HEADERS}
无服务器函数 B 响应头:{RESPONSE_HEADERS}
无服务器函数 A 请求体:{REQUEST_BODY}
无服务器函数 B 响应体:{RESPONSE_BODY}
识别两个无服务器函数之间交换的数据中的任何潜在漏洞,并报告它们。
分析请求和响应数据中特定于单页应用程序(SPA)框架的潜在安全漏洞:
分析请求和响应数据,查找特定于 {SPA_FRAMEWORK_NAME} SPA 框架的潜在安全漏洞:
Web 应用程序 URL:{URL}
SPA 框架名称:{SPA_FRAMEWORK_NAME}
请求头:{REQUEST_HEADERS}
响应头:{RESPONSE_HEADERS}
请求体:{REQUEST_BODY}
响应体:{RESPONSE_BODY}
识别请求和响应数据中与 {SPA_FRAMEWORK_NAME} SPA 框架相关的任何潜在漏洞,并报告它们。
Settings 面板中新增一个字段,允许用户设置请求的 maxTokens 限制,从而限制请求大小。<- 仅限 BurpGPT 专业版。AI 模型 实例的支持,允许用户在其本地计算机上运行和交互模型,可能改善响应时间和数据隐私。<- 仅限 BurpGPT 专业版。模型 的精确 maxTokens 值,以传输最大允许数据并获得最广泛的 GPT 响应。Burp Suite 重启后保留设置。<- 仅限 BurpGPT 专业版。GPT 响应解析为 漏洞模型,从而改进报告。<- 仅限 BurpGPT 专业版。该扩展目前正在开发中,我们欢迎反馈、评论和贡献,使其变得更好。
如果这个扩展在安全评估中为你节省了时间和麻烦,不妨考虑赞助开发者一杯咖啡 ☕。毕竟,这是驱动开发的燃料。只需点击页面顶部的“Sponsor”按钮,或点击此处贡献,让咖啡因继续流淌。💸
发现了 bug?别让它到处爬!让我们像一对 bug 耳语者一样一起消灭它吧!🐛💪
请通过 GitHub issues 跟踪器 报告任何问题。让我们一起让这个扩展像核爆中幸存的蟑螂一样可靠!🚀
想用你疯狂的编码技能大显身手?💻
太棒了!欢迎贡献,非常感谢。请将所有 PR 提交到 GitHub pull requests 跟踪器。让我们一起让这个扩展更加令人惊叹!🚀
参见 LICENSE。
| 占位符 | 描述 |
|---|
{REQUEST} | 被扫描的请求。 |
{URL} | 被扫描请求的 URL。 |
{METHOD} | 被扫描请求中使用的 HTTP 请求方法。 |
{REQUEST_HEADERS} | 被扫描请求的请求头。 |
{REQUEST_BODY} | 被扫描请求的请求体。 |
{RESPONSE} | 被扫描的响应。 |
{RESPONSE_HEADERS} | 被扫描响应的响应头。 |
{RESPONSE_BODY} | 被扫描响应的响应体。 |
{IS_TRUNCATED_PROMPT} | 一个 布尔值,程序会根据提示词是否被截断为 Settings 中定义的 最大提示大小 自动设置为 true 或 false。 |