挖洞经验 | Uber第三方应用的开发者密钥等敏感信息泄露漏洞
字数 1527 2025-08-18 11:38:08
Uber第三方应用开发者密钥及敏感信息泄露漏洞分析报告
漏洞概述
本报告详细分析了Uber第三方集成服务应用中存在的敏感信息泄露漏洞,该漏洞允许攻击者通过特定API接口获取第三方应用开发者的客户端密钥(Client Secret)和服务器令牌(Server Token)等敏感信息。
漏洞背景
Uber API开放计划
Uber通过向第三方开发者开放API接口,构建了广泛的生态系统:
- 众多知名企业如美国联合航空、微软、TripAdvisor、Open Table等已在其APP中集成Uber服务
- 2015年9月,Uber在中国市场全面开放API,首批合作伙伴包括百度、穷游网和渡鸦科技
- 开放对象包括成熟企业、中型企业及初创公司
敏感信息的重要性
Uber官方文档特别强调:
- 客户端密钥(Client Secret)相当于应用程序的密码
- 严禁与他人共享或在源码/公共论坛中泄露
- 需防止客户端设备上的反编译获取
- 一旦怀疑泄露应立即生成新密钥替换旧密钥
漏洞详情
漏洞位置
存在漏洞的API端点:
- 公共请求端:
https://riders.uber.com/profile - 存在问题的API:
https://riders.uber.com/api/getAuthorisedApps
泄露信息类型
通过该漏洞可获取的敏感信息包括:
- 开发者客户端密钥(Client Secret)
- 服务器令牌(Server Token)
- 用户邮箱(userEmail)
- 用户唯一标识(userUUID)
漏洞影响范围
影响所有与Uber API集成的第三方应用,包括但不限于:
- IFTTT
- Payfare
- Bixby
漏洞复现步骤
-
关联第三方应用:
- 攻击者使用自己的账户通过OAuth认证关联任意Uber第三方应用
-
发起恶意请求:
- 使用有效的会话(Session)数据
- 向
https://riders.uber.com/profile发起POST请求
-
获取敏感信息:
- 在API响应中提取敏感信息
请求示例
POST /api/getAuthorisedApps HTTP/1.1
Host: riders.uber.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://riders.uber.com/profile
content-type: application/json
x-csrf-token: XXX
origin: https://riders.uber.com
Content-Length: 2
Cookie: [有效Cookie]
漏洞危害
-
开发者密钥泄露风险:
- 攻击者可冒充合法应用
- 可能进行未授权API调用
- 可能访问用户数据
-
服务器令牌泄露风险:
- 可能导致服务端未授权访问
- 可能破坏服务间通信安全
-
用户信息泄露风险:
- 用户邮箱和唯一标识可能被滥用
漏洞修复过程
-
时间线:
- 2018.10.5:漏洞初报
- 2018.10.6:Uber接收漏洞,要求通知第三方合作伙伴
- 2018.12.20:Uber表示正在通知合作伙伴并制定长期解决方案
- 2019.2.8:Uber发放$5000赏金,确认已邮件通知所有合作伙伴
-
修复措施:
- 从
riders.uber.comAPI响应中移除敏感信息 - 提醒开发者定期更换密钥
- 通知所有合作伙伴开发团队
- 从
安全建议
对开发者的建议
-
密钥管理:
- 定期轮换客户端密钥(Client Secret)
- 避免在客户端代码中硬编码敏感密钥
- 使用安全的密钥存储方案
-
监控措施:
- 设置API调用异常检测
- 监控未授权的API访问
-
应急响应:
- 建立密钥泄露应急响应流程
- 发现泄露立即撤销并更换密钥
对API提供方的建议
-
接口设计:
- 严格审查API返回的数据
- 避免在响应中包含不必要的信息
-
权限控制:
- 实施最小权限原则
- 区分不同级别的API访问权限
-
安全审计:
- 定期进行API安全审计
- 建立漏洞奖励计划鼓励白帽黑客报告漏洞
总结
本漏洞展示了API接口设计中常见的安全问题,即过度返回敏感信息。通过此案例,开发者应认识到:
- API响应应遵循最小信息原则
- 敏感凭证的管理至关重要
- 安全响应和漏洞修复需要及时有效
- 厂商与安全研究人员的合作有助于提升整体安全性