星巴克新加坡站6000美元账户接管漏洞:IDOR攻击剖析

本文详细披露了通过IDOR漏洞接管星巴克新加坡站用户账户的技术细节,包括环境侦察、漏洞利用链构建、跨测试环境会话劫持等过程,最终实现账户完全控制并获得6000美元漏洞赏金。

侦察阶段

在浏览星巴克新加坡站时,我发现某个页面加载了第三方站点(暂称example.com)的内容。经调查发现card.starbucks.com.sg的登录页面存在于example.com/starbucks目录下,存在两种可能性:

  1. 该应用可能是card.starbucks.com.sg的开发和测试环境
  2. 或是已废弃的旧测试环境

通过在生产环境创建测试账户并成功登录example.com/starbucks,确认两个应用使用相同的认证机制。

漏洞利用

在测试环境发现一个生产环境不存在的端点,其POST参数为:

1
email=hacker@hacker.com 

当填入目标邮箱时,可在个人资料页看到该账户的部分信息。由于测试环境生成的CSRF令牌无效,无法直接修改密码。通过将测试环境的PHPSESSID cookie复制到生产环境后:

  1. 成功查看受害者完整信息
  2. 利用生产环境有效的CSRF令牌修改密码
  3. 实现账户完全接管

影响范围

攻击者可:

  • 查看用户所有个人信息
  • 完全控制账户
  • 通过移动应用消费账户内存储的星礼卡余额

漏洞链扩展

在example.com发现另外两个测试环境:

  1. starbucks2:禁止新用户注册
  2. starbucks3:可创建新账户

通过分析得出:

  • starbucks2/starbucks3使用独立测试用户表
  • starbucks3创建的账户可登录starbucks2
  • starbucks2的PHPSESSID在生产环境有效

最终构建攻击链:

  1. 在starbucks3用受害者邮箱创建傀儡账户(写入testusers表)
  2. 在starbucks2通过相同端点将该邮箱与自己账户关联(绑定PHPSESSID到测试用户表)
  3. 复制PHPSESSID到生产环境接管真实账户

时间线

  • 5月17日:提交报告
  • 5月18日:分类处理
  • 5月20日:获4000美元赏金
  • 6月17日:追加2000美元(1.5倍奖励)

原始漏洞报告 | 关注作者Twitter获取更多安全研究内容

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计