任意帐户接管 – 利用通配符进行网络缓存欺骗

admin 2024年2月22日02:27:50评论11 views字数 1715阅读5分43秒阅读模式

去年,Nagli 在 ChatGPT 中发现了一个网络缓存欺骗漏洞,其影响至关重要,因为它导致用户的身份验证令牌泄露,并可导致任意帐户被接管。

OpenAI 立即向 ChatGPT 用户通报了该漏洞,并迅速修复了该漏洞……

在本篇文章中,国外研究人员将解释如何滥用路径遍历 URL 解析器来实现 “通配符 “缓存欺骗漏洞,从而窃取用户授权令牌并接管他们的账户。

假设你已了解 Web 缓存欺骗漏洞的基础知识,本文不再做过多解释。如果你还不熟悉这些知识,或是想复习一下这知识,可以先阅读 Nagli 的文章,然后再回到本文。另外,该漏洞使用了与2022年 Glassdoor 中发现的 Web 缓存中毒漏洞类似的概念,该漏洞允许我们缓存“不可缓存”的文件和端点,虽然这不是完全相同的技术,但它展示了 URL 解析器混乱的可能性,特别是路径遍历,为各种缓存漏洞打开了新的大门。

初步发现

在使用 ChatGPT 新实现的“分享”功能时,安全人员注意到一些奇怪的事情,当继续与 ChatGPT 交谈时,共享聊天链接都不会更新。

安全人员猜测共享聊天可能被缓存,因此在缓存条目消失之前都不会进行更新。

为了测试这一点,安全人员在开发工具中打开了网络选项卡来检查响应标头,正如所预测的,可以明显看到 Cf-Cache-Status: HIT 标头。这非常有趣,因为这不是静态文件,通过检查 URL,发现该路径没有预期的静态扩展名:

https://chat.openai.com/share/CHAT-UUID

这就意味可能有一个缓存规则并不依赖于文件的扩展名,而是依赖于它在 URL 路径中的位置,为了测试这一点,安全人员检查了 https://chat.openai.com/share/random-path-that-does-not-exist 不出所料,它同样也被缓存了。安全人员发现缓存规则是这样的 /share/* /share/ 路径下的几乎所有内容都会被缓存,这立刻引起了安全人员的警觉,因为放宽缓存规则可能会非常危险,尤其是在 URL 解析器混乱的情况下。

路径遍历混乱

在使用缓存的网站中,请求在到达 Web 服务器之前必须经过 CDN,这就意味着 URL 会被解析两次,这可能会导致 URL 解析器混乱。

在 ChatGPT 的案例中,URL 解析器混乱意味着两个服务器以不同的方式解析 URL 编码的正斜杠,其中 Cloudflare 的 CDN 不会解码,也不会规范化 URL 编码的路径遍历,但 Web 服务器会这样做。

因此,URL 编码的路径遍历允许攻击者从服务器缓存他们想要的任何文件,包括影响最大的包含授权令牌的 API 端点。下面是一个示例Payload:请注意, %2F 解码为 / /api/auth/session 是一个敏感的 API 端点,其中包含用户的身份验证令牌 https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123

那么让我们来分析一下。

  • 我们已经确定 CDN 将缓存 /share/ 下的所有内容
  • CDN 不会解码也不会标准化 %2F..%2F ,因此,响应将被缓存
  • 但是,当 CDN 转发此 URL 时,Web 服务器将解码并标准化 %2F..%2F ,并使用包含身份验证令牌的 /api/auth/session 进行响应

综上所述,当受害者访问 https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123 时,他们的身份验证令牌将被缓存,当攻击者稍后访问 https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123 时,他们将看到受害者缓存的身份验证令牌。所以,一旦攻击者获得了身份验证令牌,他们就可以接管该帐户、查看聊天记录、账单信息等。

以下是安全人员画的草图,以方便更直观理解:

任意帐户接管 – 利用通配符进行网络缓存欺骗

总之,由于 CDN 和 Web 服务器之间的路径规范化不一致,从而能够使用 URL 编码路径来遍历缓存敏感信息的 API 端点。

最终该安全人员获得了OpenAI发放的 6500 美元赏金奖励。

原文始发于微信公众号(迪哥讲事):任意帐户接管 – 利用通配符进行网络缓存欺骗

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月22日02:27:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   任意帐户接管 – 利用通配符进行网络缓存欺骗https://cn-sec.com/archives/2514194.html

发表评论

匿名网友 填写信息