本文讲述作者通过Github探测手段(Github Recon)发现了特斯拉某服务端的用户名密码凭据,通过该凭据可以成功对特斯拉后台API接口发起请求,实现敏感数据返回。漏洞最终获得了特斯拉官方$5000美金奖励。一起来围观围观。
漏洞发现
由于我对服务台和管理员角色比较熟悉,但此前并未涉猎过多的网络安全,对于安全行业,我还在努力研究。最近几天,我在看@Th3G3nt3lman发布的Github探测手段(Github Recon)视频教程,它是关于一些手动的Github侦测技巧,包括关键字查找和特殊库发现等方式。看过之后,我尝试着自己现学现卖,就随手拿特斯拉公司作为目标进行搜索查找,如:
“tesla.com” password=
结果是什么都没发现,那再换换看:
“tesla.com” pass=
也没有任何返回结果,再来:
“tesla.com” pwd=
这下就有了:
它是一个特斯拉的代码库,而且竟然是3天前更新过的代码:
从以上代码可以看出:
1、它是与云端IT业务专业管理工具ServiceNow进行交互的代码,我对ServiceNow比较熟悉;
2、其中的用户名user、密码pwd是base64编码,是可以解码的。
测试验证
手里有了这个凭据,我就想如何去利用它。在CTF经验的帮助下,我用在线的CyberChef工具成功解码了上述base64编码字段,这样一来,就能去登录测试了。
但尴尬的是,当我尝试用明文凭据去登录特斯拉adfs系统(https://sso.tesla.com/adfs/)时,它提示需要进行多因素验证,还需要验证登录用户的手机号,这就有点难了。
API拯救了世界
至此,好像也没什么希望了。但是由于我了解ServiceNow,工作中经常会用到其API接口方式,所以,我就想在此请求特斯拉API接口试试看。于是,我用PostMan构造了包含上述凭据的请求,看看能否返回一个有效的响应。
从我探测过的特斯拉API接口列表中,我选择了几个执行请求,BOOM!其中完全不需要权限验证,HTTP 200 !值得注意的是,我构造的请求不算大,但返回数据竟然把PostMan都崩溃了,可见其响应数据算是非常之多了。
这里,我们再来认识一下ServiceNow,它是一款云服务管理工具,安装之后会包含一个名为“MID Server”的服务,它负责把数据信息推送到云实例中,其中推送的数据信息包括用户和主机等活动目录数据,这是ServiceNow可以把事件或帮助台票据链接到特定用户的功能,也是工程师在生产系统中可以通过ServiceNow的Configuration Item DB导入和管理实现维护的手段。
也就是说,通过其中的实例请求,攻击者可以获取到所有的内部服务,包括IP地址和系统信息描述等,也能获取到一些绝佳的请求更改、事件信息或服务请求票据。
为此,我特意写了一个PowerShell脚本并转化成Python,用它可以实现整个ServiceNow实例的数据下载,有了这个功能,漏洞最终从P4被提升到了P1。
漏洞上报后,特斯拉在3小时后就立马删除了该代码库,之后特斯拉在API接口请求中加入了对ServiceNow实例请求的MFA验证手段。
经验总结
要擅于应用搜索语法,上述的特斯拉代码库曝露在网已经快3年多了,而其中的更新代码恰巧就被我发现了;
自动化工具不能发现所有东西,有时候需要亲自动动手;
任何要都可以发现漏洞,有些漏洞需要的漏洞技术并不是太多,但前提是你需要了解某些应用逻辑,知道从哪下手。
参考来源
来源:freebuf.com 2020-07-02 20:39:28 by: clouds
请登录后发表评论
注册