挖洞经验 | 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

泄露信息类型

通过该漏洞可获取的敏感信息包括:

  1. 开发者客户端密钥(Client Secret)
  2. 服务器令牌(Server Token)
  3. 用户邮箱(userEmail)
  4. 用户唯一标识(userUUID)

漏洞影响范围

影响所有与Uber API集成的第三方应用,包括但不限于:

  • IFTTT
  • Payfare
  • Bixby

漏洞复现步骤

  1. 关联第三方应用

    • 攻击者使用自己的账户通过OAuth认证关联任意Uber第三方应用
  2. 发起恶意请求

    • 使用有效的会话(Session)数据
    • https://riders.uber.com/profile发起POST请求
  3. 获取敏感信息

    • 在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]

漏洞危害

  1. 开发者密钥泄露风险

    • 攻击者可冒充合法应用
    • 可能进行未授权API调用
    • 可能访问用户数据
  2. 服务器令牌泄露风险

    • 可能导致服务端未授权访问
    • 可能破坏服务间通信安全
  3. 用户信息泄露风险

    • 用户邮箱和唯一标识可能被滥用

漏洞修复过程

  1. 时间线

    • 2018.10.5:漏洞初报
    • 2018.10.6:Uber接收漏洞,要求通知第三方合作伙伴
    • 2018.12.20:Uber表示正在通知合作伙伴并制定长期解决方案
    • 2019.2.8:Uber发放$5000赏金,确认已邮件通知所有合作伙伴
  2. 修复措施

    • riders.uber.com API响应中移除敏感信息
    • 提醒开发者定期更换密钥
    • 通知所有合作伙伴开发团队

安全建议

对开发者的建议

  1. 密钥管理

    • 定期轮换客户端密钥(Client Secret)
    • 避免在客户端代码中硬编码敏感密钥
    • 使用安全的密钥存储方案
  2. 监控措施

    • 设置API调用异常检测
    • 监控未授权的API访问
  3. 应急响应

    • 建立密钥泄露应急响应流程
    • 发现泄露立即撤销并更换密钥

对API提供方的建议

  1. 接口设计

    • 严格审查API返回的数据
    • 避免在响应中包含不必要的信息
  2. 权限控制

    • 实施最小权限原则
    • 区分不同级别的API访问权限
  3. 安全审计

    • 定期进行API安全审计
    • 建立漏洞奖励计划鼓励白帽黑客报告漏洞

总结

本漏洞展示了API接口设计中常见的安全问题,即过度返回敏感信息。通过此案例,开发者应认识到:

  1. API响应应遵循最小信息原则
  2. 敏感凭证的管理至关重要
  3. 安全响应和漏洞修复需要及时有效
  4. 厂商与安全研究人员的合作有助于提升整体安全性
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响应中提取敏感信息 请求示例 漏洞危害 开发者密钥泄露风险 : 攻击者可冒充合法应用 可能进行未授权API调用 可能访问用户数据 服务器令牌泄露风险 : 可能导致服务端未授权访问 可能破坏服务间通信安全 用户信息泄露风险 : 用户邮箱和唯一标识可能被滥用 漏洞修复过程 时间线 : 2018.10.5:漏洞初报 2018.10.6:Uber接收漏洞,要求通知第三方合作伙伴 2018.12.20:Uber表示正在通知合作伙伴并制定长期解决方案 2019.2.8:Uber发放$5000赏金,确认已邮件通知所有合作伙伴 修复措施 : 从 riders.uber.com API响应中移除敏感信息 提醒开发者定期更换密钥 通知所有合作伙伴开发团队 安全建议 对开发者的建议 密钥管理 : 定期轮换客户端密钥(Client Secret) 避免在客户端代码中硬编码敏感密钥 使用安全的密钥存储方案 监控措施 : 设置API调用异常检测 监控未授权的API访问 应急响应 : 建立密钥泄露应急响应流程 发现泄露立即撤销并更换密钥 对API提供方的建议 接口设计 : 严格审查API返回的数据 避免在响应中包含不必要的信息 权限控制 : 实施最小权限原则 区分不同级别的API访问权限 安全审计 : 定期进行API安全审计 建立漏洞奖励计划鼓励白帽黑客报告漏洞 总结 本漏洞展示了API接口设计中常见的安全问题,即过度返回敏感信息。通过此案例,开发者应认识到: API响应应遵循最小信息原则 敏感凭证的管理至关重要 安全响应和漏洞修复需要及时有效 厂商与安全研究人员的合作有助于提升整体安全性