【FreeBuf字幕组】Hackerone漏洞分析:星巴克隐私数据泄露
字数 1174 2025-08-15 21:32:10
星巴克API路径遍历漏洞分析教学文档
漏洞概述
本教学文档详细分析2020年发现的星巴克网站API路径遍历漏洞,该漏洞导致近1亿条顾客记录信息可被未授权访问。漏洞由安全研究员Sam Curry发现,最终被评估为高危漏洞并获得$4000奖励。
漏洞发现过程
初始发现
- 研究员在星巴克官网购物时注意到大量API交互
- 重点测试了
/bff/proxy/API接口 - 首先发现
/bff/proxy/orchestra/get-user接口可返回用户注册信息
路径枚举尝试
- 尝试对
/bff/proxy/orchestra/get-user/../进行字典枚举 - 虽然返回404状态码,但确认了与服务端的交互可行性
关键突破点
- 发现存在用户输入参数的路径:
/bff/proxy/stream/v1/me/streamItems/:streamItemId - 测试路径遍历:
/bff/proxy/stream/v1/users/me/streamItems/..\..\- 初始响应为403
- 通过添加7个
\..\绕过WAF:- 响应变为400,表明接近成功
最终利用路径
在与同事Justin合作下,发现可访问99356059条顾客记录的路径:
/bff/proxy/stream/v1/users/me/streamItems/web\search\v1\Accounts\
技术原理分析
漏洞类型
- API路径遍历漏洞:通过构造特殊路径绕过访问控制
- 不安全的直接对象引用(IDOR):未对敏感数据接口实施适当授权检查
漏洞成因
- API网关未正确验证和清理用户提供的路径参数
- 后端服务信任了前端传递的路径参数
- WAF规则可被特定构造的路径绕过
攻击向量
攻击者通过构造包含..\的路径字符串,实现:
- 突破当前API端点的访问限制
- 访问系统上其他未授权的API端点
- 最终访问到存储客户数据的敏感接口
防御措施
输入验证
- 实施严格的路径参数白名单验证
- 过滤所有包含路径遍历字符(如
..\,../)的请求
API安全
- 为每个API端点实施最小权限原则
- 避免使用前端传递的路径直接访问后端服务
- 实施API网关级别的请求验证
数据保护
- 敏感数据接口应实施额外的认证和授权检查
- 记录和监控对敏感数据接口的访问
WAF配置
- 更新WAF规则以检测此类路径遍历变体
- 实施深度防御策略,不依赖单一安全控制
漏洞报告参考
教学要点总结
- API安全测试:现代Web应用大量使用API,是安全测试的重点
- 路径遍历变体:注意不同操作系统下的路径分隔符差异(
/vs\) - WAF绕过技术:通过增加遍历深度可绕过某些简单防护
- 协作价值:与同事合作可提高漏洞挖掘效率
- 奖励机制:企业漏洞奖励计划可有效激励安全研究
实践练习建议
- 在授权测试环境中尝试重现类似漏洞
- 练习使用Burp Suite等工具进行API端点枚举
- 编写简单的路径遍历检测脚本
- 研究不同WAF对路径遍历攻击的防护机制
- 练习编写高质量的漏洞报告
通过本案例学习,安全研究人员应掌握现代Web应用API接口的安全测试方法,特别是路径遍历漏洞的发现和利用技术。