漏洞状态:已解决(关闭)
披露时间:2016年7月15日 凌晨5点38分
报告对象:Uber
漏洞类型:身份验证类
奖金:10000$
漏洞概述:
Uber是一款全球即时用车软件,该软件现已覆盖了全球六十多个国家和三百多个城市。而Uber的主要目的就是为大家提供更安全、更舒适的出行方式,并改善城市交通。
安全研究专家发现,通过Uber终端设备中的/rt/users/passwordless-signup,攻击者只需要知道目标Uber用户的手机号码,即可修改这名目标用户的Uber账号密码。但实际上,攻击者也可以不断枚举出手机号码,直到生成出注册了Uber账号的手机号。
目前,安全研究专家已经在Uber的乘客端进行了漏洞测试,并且发现这一漏洞很可能同样适用于Uber的司机端和其他用户角色。
请求/响应:
下面给出的是客户端的网络请求数据(用户具体的手机号已用xxxx代替):
|
网络请求所对应的服务器响应信息如下:
|
漏洞利用过程:
首先,我们需要创建一个新的Uber乘客账号。在实验的过程中,安全研究人员使用的是iOS端的应用程序,但是这一漏洞并不受应用程序平台的影响。
注册成功之后,将上面的网络请求再次发送给Uber的服务器,但是需要在发送之前将“phoneNumberE164”的值修改为绑定账户的手机号码(手机号码需要包含国家号码前缀,并以“+”开头。例如美国手机号的前缀码为+1xxx)。在某些情况下,你可能需要重复发送两次这样的网络请求,否则你可能无法接收到服务器端发回的响应信息。最终,我们将会接收到一条内容为“新密码已被创建”的提示信息,这也就意味着,我们已经成功更新了目标账户的登录密码。而目标账号的新密码就是请求中“newPassword”域的值。
这样一来,我们就可以在http://riders.uber.com/或者其他地方使用新密码来登录这个账号了。
在此之前,Uber一直都是黑客经常会选择的攻击目标。早在2014年,Uber公司就发生过严重的数据泄漏。在此次事件中,大约有五万名Uber出租车司机的姓名和驾驶执照信息被窃取了。此外,在2016年上半年,Uber平台下的大量账号信息竟然出现在了暗网市场中,大量用户信息发生了泄漏。为此,Uber公司的技术人员真的应该好好检查一下他们的产品安全性了。