【漏洞分析】利用url解析差异和Web Cache Deception实现对ChatGPT的账号接管

继去年 @naglinagli 利用Web Cache Deception攻击实现对ChatGPT的账号接管后,今年2月 @h4r3l 发表了 ChatGPT Account Takeover - Wildcard Web Cache Deception,利用CloudFlare CDN和后端服务对url的解析差异,再次实现,利用路径穿越+Web缓存欺骗,再次实现实现了对其他用户的ChatGPT账号接管。

@h4r3l 在ChatGPT提供的对话分享功能中,发现在 /share/* 路径下的url 会命中 CloudFlare缓存(CF-Cache-Status: HIT)。

还发现CloudFlare CDN并不会对 url进行url解码和标准化(normalize),而openai后端真实服务会进行url解码和标准化,于是构造url:
https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123, 受害者访问该url后,CloudFlare CDN看到是 /share 路径下,则后面会缓存该接口的响应,同时到达真实服务端后变成 https://chat.openai.com/api/auth/session?cachebuster=123,成功请求,响应被缓存,攻击者再次访问后,便能获取受害者的session,从而再次实现了账号接管。

整个过程如下图:

posted @ 2025-02-21 21:08  wh03ver-momo  阅读(49)  评论(0)    收藏  举报