AI驱动的渗透测试文档自动化工具

本文介绍了一款名为Document My Pentest的Burp Suite AI扩展,它能够实时监控渗透测试请求,自动生成结构化测试记录,并通过智能提示工程提升漏洞识别准确率,显著提升安全测试效率。

厌倦了重复记录?现在可以自动化您的Web安全审计跟踪了。在这篇文章中,我将介绍一款新的Burp AI扩展,它能将枯燥的部分从渗透测试中剔除。

Web安全测试可能很繁琐:需要记录每个步骤,反复编写相同的笔记,并在每个项目中重复这些工作。但如果您的工作流程能在您进行黑客测试时自动记录呢?

欢迎了解"Document My Pentest",这是您安全测试中的无声协分析员。这是一款开源的Burp Suite扩展,可实时监控您的请求,理解您正在探测的内容,并自动构建清晰、结构化的发现记录——准确捕捉您做了什么以及如何做的。当您准备好时,可以将其交给AI并生成报告。不再需要枯燥的笔记记录,只需关注结果。

概念

PortSwigger研究团队一直在探索使用Burp AI功能的新AI扩展,令人惊讶的是,快速构建一个功能原型非常容易。在短短几天内,我就有了一个可工作的扩展。

我很快发现AI不太擅长分析整个请求和响应,特别是对于XSS等漏洞。它在检测路径遍历方面表现不错,因为当响应明确显示目录列表时,它能清楚地表明攻击已成功。

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

考虑输入<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响应内容在此”

这返回了关于LLM为何错误识别问题的详细分析,并提出了改进方法。然后我拿实际的提示并要求LLM改进它: “如何改进此提示以防止此类问题?” 您的提示在此

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,通过转到Document My Work->Settings->Auto invoke after Repeater requests和Document My Work->Settings->Auto send notes to Organizer,在您攻击目标时自动将笔记发送到Organizer。

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

受到启发?尝试使用Burp的内置Montoya API及其专用接口来处理扩展与PortSwigger可信AI平台之间的流量,自己创建一个AI驱动的扩展。

AI安全与隐私

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

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