Repeater Strike:手动测试,效率倍增 | PortSwigger Research
Gareth Heyes
研究员
@garethheyes
发布时间: 2025年7月15日 13:46 UTC
更新时间: 2025年7月15日 13:46 UTC
手动测试不必重复繁琐。本文介绍Repeater Strike——一款基于AI的Burp Suite扩展,旨在自动化检测IDOR及类似漏洞。通过分析Repeater流量,Repeater Strike根据测试的请求和响应生成智能正则表达式,并在代理历史记录中应用这些正则表达式,以发现相关问题,让您轻松将单个漏洞转化为一系列可操作的结果。
在PortSwigger Research,我们正尝试利用AI开发半自动化工具,以增强安全测试。我的一个想法是使用AI寻找变体,因此我构建了Shadow Repeater。结果非常酷,且完美契合AI的优势。我思考是否能做得更多,而不仅仅是生成变体。我想到可以基于您在Repeater中的操作,扫描代理历史记录以发现更多内容。
我尝试了三种不同的漏洞检测方法:Java编译、正则表达式和基于差异的分析。我花了一些时间使用动态生成的Java类生成扫描检查,但很快意识到可以使用多个正则表达式实现相同目标,于是将重点转向正则表达式。
第一步是使用AI识别漏洞并生成JSON对象,以帮助下一个代理:
|
|
AI正确识别了您可能测试的内容,并注意到基于发送的请求,您正在测试名为id的URL参数。初始探测是针对wiener 😂。AI随后使用此探测尝试在响应中找到唯一可识别的信息:
|
|
很酷的是,AI识别了用户名反射和API密钥,我告诉它匹配数据结构以便找到更多内容,而不是特定密钥。接下来,它在生成新的Strike Rule之前,尝试使用探测重现发现。如果复制成功,Repeater Strike会提示您输入Strike Rule名称。
下一步是变异探测和响应正则表达式。这在一年前是不可能的,但现在的AI模型非常智能。它们可以巧妙地处理和变异数据。值得注意的是,我没有提供关于漏洞的具体指令,它可以从我提供的JSON结构中推断:
|
|
一旦AI变异了探测和正则表达式,它就可以扫描代理历史记录以寻找此行为。您甚至可以设置Repeater Strike,使其在每次发送Repeater请求时动态创建Strike Rule。您可能认为这会消耗大量AI令牌,但实际上创建此特定Strike Rule仅花费了61个令牌,且规则生成后不再使用额外令牌!
如果AI生成的正则表达式失败,没问题,我创建了一个Strike Rule编辑器,让您可以编辑生成的Strike Rule,点击保存,然后扫描代理历史记录,而无需额外令牌。
开发挑战
在开发过程中,我遇到了几个挑战。一个主要问题是处理大型响应——虽然AI可以有效地解释较小的响应,但对于像Facebook这样的网站的长响应则表现不佳。我最初截断了数据,但这导致重要上下文丢失。
另一个障碍是AI输出的不一致性。例如,在生成正则表达式时,它有时未能正确转义元字符,导致运行时错误。解决方法是程序化地在异常发生时转义这些字符。
更广泛的概念也难以泛化。虽然系统可以在特定站点检测IDOR等问题,但创建足够灵活的正则表达式模式以跨不同站点工作,而不过于站点特定,是一项挑战。
我尝试使用响应差异分析作为提取有意义信息的方法,通过过滤噪音(如无关紧要的头部)并仅关注变化的部分。
最终,我没有时间完全解决这个问题——但也许您可以。
您能找到一种优雅的解决方案,可靠地隔离有意义的UI变化并将其馈送给AI吗?让我们进一步推动它。
相关标签: AI, Burp Suite, burp extender, Hacking Tools, research tools
相关研究:
- Document My Pentest: you hack, the AI writes it up! (2025年4月23日)
- Shadow Repeater: AI-enhanced manual testing (2025年2月20日)
- Introducing SignSaboteur: forge signed web tokens with ease (2024年5月22日)
- Using form hijacking to bypass CSP (2024年3月5日)