任意帐户接管 – 利用通配符进行网络缓存欺骗
2024-2-21 22:44:40 Author: mp.weixin.qq.com(查看原文) 阅读量:23 收藏

去年,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 美元赏金奖励。

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

xss研究笔记

SSRF研究笔记

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247493604&idx=1&sn=8841198bfc2d3319b70225c11f21ccae&chksm=e8a5ed87dfd264913c1f81827f9ff2bb80e4bf8073d8a96b78bc404a8fe01458e9a2643f6ed7&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh