一种很骚的新颖姿势盗取别人chatgpt登陆凭证

admin 2025年2月13日15:49:26评论7 views字数 2270阅读7分34秒阅读模式

最近OpenAI被爆出2000万个OpenAI账户的出售。

看到这个新闻,我联想到以前OpenAI出现过一些与此可能相关漏洞,其中有一个很有趣的姿势,迫不及待想和各位粉丝朋友一起分享学习下。

一种很骚的新颖姿势盗取别人chatgpt登陆凭证

背景说明

这是一类被习惯性忽略的漏洞,但是危害却是严重级别的ATO账户接管。

下面让我们以chatgpt的漏洞案例进行分析,以让大家更好地理解"缓存"漏洞挖掘的姿势及其如何巧妙地产生危害!

正文内容

在这篇文章中,我将解释如何利用路径遍历URL解析混淆,滥用这一漏洞达到我所称之为“通配符”缓存欺骗漏洞,进而窃取用户的认证令牌并接管他们的账户。

我假设读者已经了解Web缓存欺骗漏洞的基础知识,因此不会深入解释。

如果你还不熟悉这个非常有趣的漏洞,建议保持关注此公众号之前发表过一些类似的缓存漏洞文章。

此外,这个漏洞使用的概念与我去年在Glassdoor发现的Web缓存投毒漏洞类似,允许我们缓存“无法缓存”的文件和端点

尽管它不是完全相同的技术,但它展示了URL解析混淆,特别是路径遍历,如何为各种缓存漏洞打开新大门。

初步发现

在玩ChatGPT新实现的“分享”功能时,我注意到了一些奇怪的现象。

PS.敏锐发现场景差异

这个功能允许用户将他们的聊天内容公开分享给他人,但我发现,当我继续与ChatGPT对话时,所有我分享的聊天链接都不会更新

经历过类似的bug后,第一时间想到的是缓存问题。我猜测共享的聊天内容是被缓存的,因此在缓存条目过期之前,它不会更新。

为了验证这一点,我打开了开发者工具中的网络标签,检查响应头,正如我预料的那样,我看到了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解析混淆存在时,放宽缓存规则可能非常危险

路径遍历混淆

在使用缓存的网站中,请求必须先通过CDN,再到达Web服务器。

这意味着URL会被解析两次,从而可能会出现URL解析混淆的问题。

在ChatGPT的案例中,URL解析混淆意味着两个服务器对URL编码的斜杠(%2F)解析方式不同:

Cloudflare的CDN不会解码,也不会规范化URL编码的路径遍历,而Web服务器会。

所以,URL编码的路径遍历允许攻击者从服务器缓存任何他们希望的文件,包括那些包含授权令牌的高影响力API端点。

这听起来有些复杂,下面是一个示例负载:

注意,%2F解码后为/,而/api/auth/session是一个敏感的API端点,包含用户的授权令牌:

https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123

让我们来解析一下这个过程:

  • 我们已经确认,CDN会缓存所有位于/share/下的内容。

  • 我们也说过,CDN不会解码或规范化%2F..%2F,因此响应会被缓存。

  • 然而,当CDN将这个URL转发给Web服务器时,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

他们将看到受害者缓存的授权令牌。此时,攻击者就可以完全接管账户,查看聊天记录、账单信息等。

为了帮助大家更好地理解,我画了一个简单的草图来帮助你们可视化这个过程:

一种很骚的新颖姿势盗取别人chatgpt登陆凭证

总结来说,我通过利用URL编码的路径遍历,借助CDN和Web服务器之间路径规范化的不一致,成功缓存了敏感的API端点。

最后该漏洞悬赏6500美元。

thanks https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html

漏洞分析

首先,这个漏洞的发现过程非常有指导意义。

1.白帽子通过结合业务的理解观察到分享功能的链接不会更新

2.去验证想法发现/share目录下的内容都会被CDN缓存

3.发现利用CDN和Web服务器解码的差异可逃逸出缓存规则

4.构造路径穿越,强迫CDN服务器缓存到本不该缓存的登陆凭证页面

之后所有的用户包括黑客都可访问到此缓存页面,黑客从缓存里面获取到受害者的登陆凭证信息完成攻击,整个攻击链路非常的巧妙,可实现1click接管用户的帐号!

通知

感谢大家保持关注 “一个不正经的黑客” 公众号,后续会给你带来更多精彩前沿的技术分享。

目前公众号的回复服务由于服务器过期,暂时不可用,人工回复留言可能稍慢!

原文始发于微信公众号(一个不正经的黑客):一种很骚的新颖姿势盗取别人chatgpt登陆凭证

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月13日15:49:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一种很骚的新颖姿势盗取别人chatgpt登陆凭证https://cn-sec.com/archives/3736605.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息