Shadow Repeater:AI增强的手动测试
Gareth Heyes 研究员 @garethheyes
发布时间: 2025年2月20日 13:20 UTC
更新时间: 2025年2月25日 09:06 UTC
你是否曾因一个错误的选择而与漏洞失之交臂?我们刚刚发布了Shadow Repeater,它通过AI驱动的全自动变体测试来增强你的手动测试能力。只需像往常一样使用Burp Repeater,Shadow Repeater会在后台监控你的攻击、尝试各种排列组合,并通过Organizer报告任何发现。
Shadow Repeater通过分析你的payload来辅助深度定向测试。当你因发送错误语法、不正确编码、文件路径或仅仅是拼写错误而差点错过漏洞时,它可以为你找到这个bug。它是完全自动化的,不需要对你正常的手动测试工作流程做任何改变。
Shadow Repeater如何工作
Shadow Repeater监控你的Repeater请求,识别你正在更改的参数。然后提取你放置在这些参数中的payload,并将其发送到AI模型生成变体。最后,它使用这些payload变体攻击目标,并通过响应差异分析来识别是否有任何变体触发了新的有趣代码路径。这种方法允许它基于手动测试人员的专业知识来发现意外行为,例如非常规的XSS向量、成功的路径遍历尝试,甚至是电子邮件分割攻击等新型漏洞。
你可以在Github上获取Shadow Repeater的源代码,并在BApp商店中获取。
安装说明
在Burp Suite Professional中,转到Extensions->BApp store并搜索Shadow Repeater。点击安装按钮,然后导航到已安装的选项卡,选择Shadow Repeater,并在Extension选项卡中选中"Use AI"复选框。
使用方法
默认情况下,Shadow Repeater在你进行第5个Repeater请求时被调用,并且需要更改参数或标头。你只需通过某种方式更改请求来尝试攻击目标。在后台,Shadow Repeater将发送变体并寻找响应中的差异。当它发现有趣的内容时,会将其发送到Organizer进行检查。
Shadow Repeater的开发历程
在PortSwigger,我们有机会在类似"龙穴"的竞赛中提出我们的AI功能想法。我认为如果Burp能够分析Repeater请求并为你测试的内容找到变体,甚至是未知漏洞,那会很酷。但我失败了,我无法看到它是如何工作的。相反,我选择专注于使用AI Hackvertor寻找未知编码。
通过改进AI Hackvertor的经验,我对AI的工作原理、如何安全发送用户输入以及如何获得真正有用的响应更加熟悉。如果你了解我,你会知道我不会轻易放弃。我曾经在最初测试两年后重新利用AngularJS HTML过滤器。这个龙穴想法也不例外,我最近重新开始研究它。
我的第一个突破是考虑差异。之前我将整个Repeater请求发送给AI进行分析,并让它解析请求。解析整个请求当然是个坏主意。然而,我需要这个失败的实验来了解AI的能力。我考虑在Github风格的请求和响应差异中使用差异逻辑。我与James交流,他建议使用参数差异。因此我用Java编写了一个Request Differ来分析标头、参数和URL路径,只将变化的值发送给AI。现在AI只分析少量数据,这些数据非常专注于你试图攻击的内容。
我的第二个突破是不告诉AI理解正在测试的内容,而是简单地告诉它找到变体。这意味着给AI一般的指令来寻找变体,但不详细说明实际测试的内容。这效果出奇地好:由于Request Differ,它了解上下文,并知道你正在测试的数据。它为路径遍历、XSS和其他类型的漏洞生成了变体。
我成功地生成了用户测试内容的变体,但如何知道变体是否相关?这就是响应差异分析发挥作用的地方。我借用了传奇人物Kettle先生的工作,因为他在Backslash Powered Scanner差异逻辑方面做了大量工作。他给了我一些关于他的响应差异如何工作的代码示例,我将AI生成的每个变体以及用户请求和一些随机控制值添加到分析列表中。然后我寻找响应中在发送变体时发生变化的不可变属性。这产生了一些很酷的结果!这种技术能够发现XSS向量中允许空格、路径遍历向量是否实际有效,甚至是未知漏洞,如电子邮件分割攻击。
这只是Burp Suite中AI驱动扩展现在可能实现的一个例子。亲自尝试一下 - Shadow Repeater现已从BApp商店提供给Burp Suite Professional早期采用者发布通道的用户。
受到启发?尝试使用Burp内置的Montoya API及其专用接口,在扩展和PortSwigger可信AI平台之间处理流量,自己创建AI驱动的扩展。
AI安全与隐私
我们已经更新了文档以反映我们如何处理发送给AI的数据,请查看详细文档和博客文章。