最新消息:

基于LLM的被动扫描工具:burpGpt

好的外部文章和内容 admin 220浏览 0评论

关于burpgpt

burpgpt是一款集成了OpenAI GPT的Burp Suite安全漏洞扫描扩展,该扩展可执行额外的被动扫描以发现高度定制的漏洞,并支持运行任何类型的基于流量的分析。

burpgpt支持利用人工智能的力量来检测传统扫描工具可能遗漏的安全漏洞。它将网络流量发送到用户指定的OpenAI模型,从而在被动扫描工具中进行复杂的分析。该扩展提供了可定制的提示,使定制的网络流量分析能够满足每个用户的特定需求。

该扩展将在扫描完成后自动生成一份安全报告,并根据用户的提示和Burp发出的请求中的实时数据总结潜在的安全问题。通过利用人工智能和自然语言处理,该扩展简化了安全评估过程,并为安全专业人员提供了扫描应用程序或终端节点的更高级别概述。这使他们能够更容易地识别潜在的安全问题并优先进行分析,同时也覆盖了更大的潜在攻击面。

功能介绍

1、添加了被动扫描检查,允许用户通过占位符系统将HTTP数据提交到OpenAI控制的GPT模型进行分析。

2、利用OpenAI的GPT模型进行全面的流量分析,能够检测扫描应用程序中的安全漏洞之外的各种问题;

3、允许精确调整最大提示长度,可以对分析中使用的GPT令牌数量进行精细控制;

4、为用户提供多种OpenAI模型选择,使他们能够选择最适合自己需求的模型;

5、允许用户自定义提示,并释放与OpenAI模型交互的无限可能性;

6、与Burp Suite集成,为预处理和后处理提供所有本地功能,包括直接在Burp UI中显示分析结果,以实现高效分析;

7、通过本机Burp事件日志提供故障排除功能,使用户能够通过OpenAI API快速解决通信问题;

工具要求

1、Linux、macOS或Windows;

2、JDK v11+;

3、Burp Suite最新专业版或最新社区版;

4、Gradle v6.9+;

工具安装

首先,我们需要确保已经正确安装并配置好了Gradle。

接下来,使用下列命令将该项目源码克隆至本地:

git clone https://github.com/aress31/burpgpt

cd .\burpgpt\

然后切换到项目目录中,构建单独的jar文件:

./gradlew shadowJar

现在,我们需要将扩展加载进Burp Suite中。首先,,我们需要切换到Extensions标签页并点击Add按钮,然后 选择.\lib\build\libs目录中的burpgpt-all jar文件并加载即可。

工具使用

广大研究人员需要在工具的设置面板中配置下列参数:

1、有效的OpenAI API密钥;

2、选择一个OpenAI模块;

3、定义max prompt大小;

4、根据需求调整提示:

配置完成后,即可执行扫描并发送请求,随后工具将生成分析结果:

工具使用样例

识别Web应用程序(使用了包含安全漏洞的加密库)中的潜在安全漏洞:

Analyse the request and response data for potential security vulnerabilities related to the {CRYPTO_LIBRARY_NAME} crypto library affected by CVE-{CVE_NUMBER}:

 

Web Application URL: {URL}

Crypto Library Name: {CRYPTO_LIBRARY_NAME}

CVE Number: CVE-{CVE_NUMBER}

Request Headers: {REQUEST_HEADERS}

Response Headers: {RESPONSE_HEADERS}

Request Body: {REQUEST_BODY}

Response Body: {RESPONSE_BODY}

 

Identify any potential vulnerabilities related to the {CRYPTO_LIBRARY_NAME} crypto library affected by CVE-{CVE_NUMBER} in the request and response data and report them.

通过分析跟身份验证过程相关的请求和响应来扫描Web应用程序中的安全漏洞(使用了生物身份验证技术):

Analyse the request and response data for potential security vulnerabilities related to the biometric authentication process:




Web Application URL: {URL}

Biometric Authentication Request Headers: {REQUEST_HEADERS}

Biometric Authentication Response Headers: {RESPONSE_HEADERS}

Biometric Authentication Request Body: {REQUEST_BODY}

Biometric Authentication Response Body: {RESPONSE_BODY}




Identify any potential vulnerabilities related to the biometric authentication process in the request and response data and report them.

分析无服务器功能之间交换的请求和响应数据以发现潜在的安全漏洞:

Analyse the request and response data exchanged between serverless functions for potential security vulnerabilities:




Serverless Function A URL: {URL}

Serverless Function B URL: {URL}

Serverless Function A Request Headers: {REQUEST_HEADERS}

Serverless Function B Response Headers: {RESPONSE_HEADERS}

Serverless Function A Request Body: {REQUEST_BODY}

Serverless Function B Response Body: {RESPONSE_BODY}




Identify any potential vulnerabilities in the data exchanged between the two serverless functions and report them.

通过分析请求和响应数据,扫描针对单页应用程序(SPA)框架潜在的安全漏洞:

Analyse the request and response data for potential security vulnerabilities specific to the {SPA_FRAMEWORK_NAME} SPA framework:




Web Application URL: {URL}

SPA Framework Name: {SPA_FRAMEWORK_NAME}

Request Headers: {REQUEST_HEADERS}

Response Headers: {RESPONSE_HEADERS}

Request Body: {REQUEST_BODY}

Response Body: {RESPONSE_BODY}




Identify any potential vulnerabilities related to the {SPA_FRAMEWORK_NAME} SPA framework in the request and response data and report them.

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

burpgpt:【GitHub传送门

参考资料

https://burpgpt.app/

https://github.com/aress31/burpgpt#example-use-cases

基于LLM的被动扫描工具:burpGpt

随着人工智能技术的快速发展,chatgpt这类生成式AI应用已经逐渐渗透进社会的方方面面。作为渗透测试人员,我们也在思考该如何使用大语言模型提高我们的测试效率和质量。近日在调研具备AI能力的安全测试工具时,发现一款名为burpGpt的burpsuite插件工具,于是本人在其社区免费版的基础上二开,以适配自己的测试习惯。本文旨在分享该工具的思路,感兴趣的同学可以研究并开发适合自己的工具。

随着人工智能技术的快速发展,chatgpt这类生成式AI应用已经逐渐渗透进社会的方方面面。作为渗透测试人员,我们也在思考该如何使用大语言模型提高我们的测试效率和质量。近日在调研具备AI能力的安全测试工具时,发现一款名为burpGpt的burpsuite插件工具,于是本人在其社区免费版的基础上二开,以适配自己的测试习惯。本文旨在分享该工具的思路,感兴趣的同学可以研究并开发适合自己的工具。
burpGpt
首先感谢burpGpt分享了其社区版的代码,为我们提供了一种应用思路,其官方网站为:https://burpgpt.app/,开源代码地址为:https://github.com/aress31/burpgpt,需要开发者自己构建jar包。
结构原理
burpGpt的结构原理并不复杂,结构图如Fig.1所示。该工具是一款被动扫描工具,主要功能是将通过burpsuite的网络流量发送给大语言模型,由大语言模型代为分析可能遗留的漏洞,并将结果提交给burpsuite。
Fig.1 burpGpt结构原理如Fig.2所示,该工具的代码结构也相对比较简单,这里主要讲解MyBurpExtension、GPTClient和MyScanCheck三个类。

Fig.2 代码结构
MyBurpExtension
该类主要是进行基础设置,主要的参数如Fig.3所示,包括apikey、modelIds、maxPromptSize以及prompt,MyBurpExtension类会将这些参数传递给GPTClient。

Fig.3 MyBurpExtension主要参数这里主要需要注意prompt参数,该参数为:

Please analyze the following HTTP request and response for potential security vulnerabilities, specifically focusing on OWASP top 10 vulnerabilities such as SQL injection, XSS, CSRF, and other common web application security threats.

Format your response as a bullet list with each point listing a vulnerability name and a brief description, in the format:

– Vulnerability Name: Brief description of vulnerability

Exclude irrelevant information.

=== Request ===

{REQUEST}

=== Response ===

{RESPONSE}

这个prompt是要求大语言模型分析请求包和返回包可能存在OWASP TOP 10漏洞,用户也可以对该prompt进行修改优化,毕竟好的prompt可以增强模型的理解能力和生成能力,提高分析结果的稳定性和可靠性。
GPTClient
该类中的getCompletion方法将prompt传递给大语言模型,并获取到返回包,如Fig.4所示。
Fig.4 GTPClient—getCompletions实际上该方法并没有被直接调用,而是被方法identifyVulnerabilities间接调用的,identifyVulnerabilities同时在该类中会构造GPTRequest对象,在该类中这个被构造出来对象的主要作用是将被扫描的请求包与返回包导入到prompt中并传递给getCompletions方法,identifyVulnerabilities方法如Fig.5所示。

Fig.5 GPTClinet—identifyVulnerabilities
3
MycheckScan
该类其实是实现了burp api的ScanCheck,Override passiveAudit方法,如Fig.6所示。
Fig.6 MycheckScan—passiveAudit其中2中的identifyVulnerabilities构造的GPTRequest对象也会在这里传递给createAuditIssuesFromGPTRespone方法。

分析结果
这里我们用了某个数据包来做测试,结果如Fig.7所示:
Fig.7 分析结果该分析结果误报率很高,个人认为主要问题在于在当前应用下大语言模型只做了分析而没有做主动验证。

展望
burpGpt社区版提供的思路的可落地性比较强,但是存在误报率高的问题,而且使用OpenAI也意味着会将流量泄露给公共大模型,有可能导致信息泄露。为了进一步解决该问题,我们可以引入本地大模型,同时使用LangChain Agent等开发工具,实现大语言模型去主动验证自己发现的问题。

 

转自:https://mp.weixin.qq.com/s?__biz=MzU1ODk1MzI1NQ==&mid=2247490497&idx=1&sn=e27a623cf75922d34c2f6d56b5674ef5&chksm=fc1ffd89cb68749f247b98047ec9d01f51c6fd46ead360f1bbb0fb1b81e6a4d6c69591ab7df0&mpshare=1&scene=1&srcid=0804k9ij2iC66tjt9AlofJ1Z&sharer_shareinfo=3065da384a544696b93ed124e74658be&sharer_shareinfo_first=3065da384a544696b93ed124e74658be&version=4.1.28.6010&platform=win&nwr_flag=1#wechat_redirect

 

 

 

 

 

 

 

 

 

 

 

 

 

转载请注明:jinglingshu的博客 » 基于LLM的被动扫描工具:burpGpt

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址