Document My Pentest:你负责黑客攻击,AI负责撰写报告!
Gareth Heyes
研究员
@garethheyes
发布时间: 2025年4月23日 13:17 UTC
更新时间: 2025年4月24日 08:41 UTC
厌倦了重复劳动?自动化你的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}
这意味着它将匹配诸如以下的转换:
<script>alert(1)</script>
%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编码的输入(例如,<script>
),那不是漏洞。”
你甚至可以让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的数据,请查看详细文档和博客文章。
Pen Testing | AI | Burp Suite
返回所有文章
此页面需要JavaScript以增强用户体验。