curl特性暴露Burp Suite与Google Chrome的本地文件泄露漏洞
James Kettle
研究总监
@albinowax
发布时间: 2023年3月28日 13:13 UTC
更新时间: 2023年3月28日 13:13 UTC
在本文中,我们将探讨curl中一个鲜为人知的功能,该功能导致Burp Suite Pro和Google Chrome存在本地文件泄露漏洞。我们在较早前已为Burp Suite打了补丁,但怀疑该技术可能有助于利用其他具有“复制为curl”功能或从命令行调用curl的应用程序。此漏洞由Paul Mutton私下报告给我们的漏洞赏金计划,并慷慨同意我们发布此分析报告。
Burp Suite用户经常制作复杂的HTTP请求来演示网站中的漏洞。为了更轻松地与他人共享这些概念验证漏洞利用,我们提供了“复制为curl命令”功能,该功能生成一个curl命令,以复制Burp Suite中的请求。
例如,给定以下请求:
|
|
如果您点击“复制为curl命令”,Burp Suite将生成以下命令并将其复制到剪贴板:
|
|
然后,您可以将此命令粘贴到终端中,以在Burp Suite之外重新发出请求。我们非常小心地转义这些数据,以避免用户因恶意请求注入额外的shell命令或任意curl参数而受到攻击。不幸的是,存在一个更微妙的问题。您能看出来吗?
通常,答案在于友好的手册中:
|
|
因此,这是安全的:
|
|
而这…就不那么安全了:
|
|
我们在2020.5.1版本中通过切换到更新、更安全但支持较少的--data-raw
标志(如果请求体以@符号开头)修复了此漏洞。
我们很幸运,因为在Burp Suite中利用此漏洞需要相对较多的用户交互——攻击者需要诱导用户访问恶意网站,将精心制作的请求复制为curl命令,然后通过命令行执行它。如果网站使用curl且请求体受攻击者控制,则可能产生显著更高的影响,因此在进行SSRF测试时绝对值得关注。@文件读取行为也适用于标头,因此对于允许您定义自定义标头的网站可能有用。
尽管此功能让我们(和Chrome)感到意外,但它已完全记录在案,因此我们不认为它是curl本身的漏洞。这让我想起了服务器端模板注入,其中沙箱逃逸可能就像阅读一个被其他人忽略的手册页面一样简单。
再次感谢Paul分享这一酷炫的技术。
下次见!