挖洞经验 | 价值6k$的星巴克官网账户劫持漏洞
字数 1237 2025-08-15 21:32:16
星巴克官网账户劫持漏洞分析与复现指南
漏洞概述
本漏洞是一个典型的IDOR(不安全的直接对象引用)漏洞,通过测试环境与生产环境的认证机制共享,实现了对星巴克官网用户账户的劫持。漏洞发现者获得了星巴克官方6000美元的奖励。
漏洞发现过程
环境发现
- 发现新加坡星巴克网站(
card.starbucks.com.sg)存在第三方测试环境(example.com/starbucks) - 测试环境与生产环境界面完全相同,但URL不同
- 两种可能性:
- 当前Web应用程序是生产环境的测试版本
- 可能是忘记删除的旧版测试环境
初步验证
- 在生产环境(
card.starbucks.com.sg)创建测试用户 - 使用相同凭证在测试环境(
example.com/starbucks)成功登录 - 确认两个环境共享相同的用户认证机制
漏洞利用细节
主要利用路径
- 在测试环境发现包含用户绑定邮箱的POST请求参数:
email=hacker@hacker.com - 将邮箱参数替换为受害者邮箱
- 服务端返回部分受害者信息
- 初始尝试因CSRF token无效未能成功更改密码
关键突破点
- 将测试环境(
example.com/starbucks)生成的PHPSESSIDcookie复制到生产环境请求中 - 成功获取生产环境中受害者的完整个人信息
- 获得有效的CSRF token,从而能够更改受害者密码
其他测试环境发现
- 发现另外两个测试环境:
example.com/starbucks2example.com/starbucks3
- 生产环境注册的用户无法登录这两个测试环境
- 测试环境特性:
starbucks2:不能注册新用户starbucks3:可以注册新用户
扩展利用方法
- 在
starbucks3用受害者邮箱注册新用户 - 用该用户登录
starbucks2 - 复制
starbucks2请求中的PHPSESSID到生产环境 - 实现账户劫持(前提是该邮箱已在生产环境注册)
漏洞影响
- 查看其他用户的个人信息
- 完全劫持受害者账户
- 消费受害者账户中的累积积分(通过移动APP)
- 潜在的其他恶意操作(如修改账户信息、下单等)
漏洞修复建议
- 测试环境与生产环境完全隔离
- 使用不同的数据库
- 不同的认证机制
- 及时清理不再使用的测试环境
- 加强会话管理:
- 不同子域使用不同的会话机制
- 增加会话绑定IP等安全措施
- 完善CSRF防护机制
- 实施严格的访问控制策略
漏洞报送时间线
- 5月17日:漏洞报送
- 5月18日:漏洞分类
- 5月20日:获得4000美元奖励
- 6月17日:获得额外2000美元奖励
教学总结
本案例展示了测试环境管理不善可能导致的安全风险,特别是当测试环境与生产环境共享认证机制时。安全研究人员应关注:
- 测试环境与生产环境的隔离情况
- 会话管理机制的一致性检查
- Cookie的作用域和有效性验证
- IDOR漏洞的多种表现形式
通过本案例,安全测试人员可以学习到如何通过环境差异发现潜在漏洞,以及如何利用认证机制共享问题实现权限提升。