AI驱动的渗透测试文档自动化:告别重复劳动,专注漏洞挖掘

本文介绍了一款名为"Document My Pentest"的开源Burp Suite AI扩展,能够实时分析渗透测试请求,自动生成结构化测试记录,并通过智能提示工程提升漏洞识别准确率,显著减少手动文档工作量。

文档化我的渗透测试:你负责黑客攻击,AI负责撰写报告!

厌倦了重复劳动?自动化您的Web安全审计跟踪。在这篇文章中,我将介绍一款新的Burp AI扩展,它将从您的渗透测试中剔除枯燥的部分。Web安全测试可能是一项苦差事:记录每个步骤,一遍又一遍地编写相同的笔记,并在每次任务中重复所有工作。但是,如果您的工作流程可以在您进行黑客攻击时自行记录呢?

认识"Document My Pentest",您的安全测试无声协作分析师。这是一款开源的Burp Suite扩展,可实时监视您的请求,了解您正在探测的内容,并自动构建一个清晰、结构化的发现记录——准确捕捉您所做的操作及方法。当您准备好时,将其交给AI并生成报告。不再需要枯燥的笔记记录。只需结果。

概念

PortSwigger研究团队一直在探索使用Burp AI功能的新AI扩展,并且令人惊讶的是,快速启动并运行一个功能原型只需几天时间。在短短几天内,我就有了一个可工作的扩展。

我很快了解到,AI不太擅长分析整个请求和响应,特别是对于XSS等漏洞。它在检测路径遍历方面表现良好,因为响应清楚地显示了目录列表,表明操作成功。

考虑到这一点,我开始制定识别反射数据的策略。我最初的想法是使用canary(标记)并查看canary反射的位置,但这里存在几个问题:a) 我们需要为每个请求发送额外的请求,b) 我们必须更改用户发送的请求。然后我想,为什么不直接使用测试的输入作为canary并将其转换为正则表达式呢?它的工作原理如下:

考虑输入<script>alert(1)</script>,这可以通过多种方式转换,但字母数字字符通常保持一致,因此我编写了一个输入到正则表达式的转换器,将输入转换为: .{1,6}script.{1,6}alert.{1,6}1.{1,6}.{1,6}.{1,6}script.{1,6} 这将意味着它可以匹配诸如以下的转换: &lt;script&gt;alert(1)&lt;/script&gt; %3Cscript%3Ealert(1)%3C%2Fscript%3E %253Cscript%253Ealert(1)%253C%252Fscript%253E

这可以为AI提供确切的转换,并提取反射的更集中部分,使AI甚至能够引用输入被转换为什么,而无需任何特定指令。经过大量测试,这似乎效果很好,但我们很快发现它不适用于其他攻击,如请求走私。在这种情况下,无法检测到参数/标头修改,我们决定发送整个请求和响应,并使用不同的AI提示,这产生了更好的结果。

在构建此扩展时,我经常发现AI会错误识别漏洞,这是由于提示中给出的指令造成的。例如: 注意 如果找到HTML实体,它们很少表示XSS漏洞。 这个提示的问题在于,AI不确定它是否是漏洞。我的想法是,您可以在"srcdoc"属性中使用实体来引起XSS,但这种模糊的语言导致LLM将漏洞标记为潜在XSS,即使它是HTML编码的。解决这个问题的方法是在提示中创建更精确的语言: “如果响应反射包含HTML编码的输入(例如,&lt;script&gt;),那不是漏洞。”

您甚至可以让LLM分析自己的响应,并告诉您为什么它认为存在漏洞,而显然没有。以下是我使用的提示: “查看此LLM响应,并指出为什么它认为存在XSS,而显然没有: LLM RESPONSE GOES HERE” 这返回了关于LLM为什么错误识别问题的详细分析,并提出了改进方法。然后我拿了实际的提示,并请LLM改进它: “如何改进此提示以防止此类问题?” YOUR PROMPT GOES HERE LLM给出了一些非常精确的指令,说明如何改进提示。这产生了更好的分析,并减少了误报。

整个过程突显了在与LLMs进行安全分析时,仔细的提示工程是多么重要。底层模型可能很强大,但如果没有清晰、明确的指令和严格限定范围的输入,它容易出现幻觉或过于谨慎的响应。通过迭代提示、实验输入格式和调整模型看到的数据,我们能够推动其能力以发现广泛的漏洞。它并不完美,但在正确的设置下,它可以有意义地协助漏洞分类,甚至以有助于改进AI和使用它的人的方式解释其推理。

安装说明

在Burp Suite Professional中,转到Extensions → BApp store,并搜索"Document My Pentest"。单击安装按钮,然后导航到已安装的选项卡,选择"Document My Pentest",并在Extension选项卡中选中"Use AI"复选框。

如何使用它

只需像通常测试目标一样使用Repeater。当您准备好记录您的工作时,跳过挖掘Repeater历史记录——只需右键单击并选择Extensions → Document My Pentest → Document my work。AI将自动为您生成笔记。

您还可以右键单击代理历史记录,并将渗透测试记录为单独的请求或作为请求和响应的集合。

右键单击单个或多个代理历史记录项,并选择Extensions → Document My Pentest → Document my work (separately)。这将创建每个请求和响应的笔记,作为单独的攻击。Extensions → Document My Pentest → Document my work (as collection)将创建所有请求和响应的组合笔记,并将笔记放入最后选定的项中。您还可以配置Document My Pentest,以便在黑客攻击目标时自动将笔记发送到Organizer,通过转到Document My Work → Settings → Auto invoke after Repeater requests和Document My Work → Settings → Auto send notes to Organizer。

当然,AI并非完美无缺——有时它会出错。没问题:您可以手动编辑笔记并进行更正。

感到有灵感?尝试使用Burp的内置Montoya API及其专用接口,创建您自己的AI驱动扩展,以处理您的扩展与PortSwigger可信AI平台之间的流量。

AI安全与隐私

我们已经更新了我们的文档,以反映我们如何处理发送到AI的数据,请查看详细文档和博客文章。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计