挖洞经验 | 利用Github探测发现特斯拉API请求漏洞 – 作者:clouds

screen2@2_1.jpg

本文讲述作者通过Github探测手段(Github Recon)发现了特斯拉某服务端的用户名密码凭据,通过该凭据可以成功对特斯拉后台API接口发起请求,实现敏感数据返回。漏洞最终获得了特斯拉官方$5000美金奖励。一起来围观围观。

漏洞发现

由于我对服务台和管理员角色比较熟悉,但此前并未涉猎过多的网络安全,对于安全行业,我还在努力研究。最近几天,我在看@Th3G3nt3lman发布的Github探测手段(Github Recon)视频教程,它是关于一些手动的Github侦测技巧,包括关键字查找和特殊库发现等方式。看过之后,我尝试着自己现学现卖,就随手拿特斯拉公司作为目标进行搜索查找,如:

“tesla.com” password=

结果是什么都没发现,那再换换看:

“tesla.com” pass=

也没有任何返回结果,再来:

“tesla.com” pwd=

这下就有了:

01.png

它是一个特斯拉的代码库,而且竟然是3天前更新过的代码:

02.png

从以上代码可以看出:

1、它是与云端IT业务专业管理工具ServiceNow进行交互的代码,我对ServiceNow比较熟悉;

2、其中的用户名user、密码pwd是base64编码,是可以解码的。

测试验证

手里有了这个凭据,我就想如何去利用它。在CTF经验的帮助下,我用在线的CyberChef工具成功解码了上述base64编码字段,这样一来,就能去登录测试了。

但尴尬的是,当我尝试用明文凭据去登录特斯拉adfs系统(https://sso.tesla.com/adfs/)时,它提示需要进行多因素验证,还需要验证登录用户的手机号,这就有点难了。

03.png

API拯救了世界

至此,好像也没什么希望了。但是由于我了解ServiceNow,工作中经常会用到其API接口方式,所以,我就想在此请求特斯拉API接口试试看。于是,我用PostMan构造了包含上述凭据的请求,看看能否返回一个有效的响应。

从我探测过的特斯拉API接口列表中,我选择了几个执行请求,BOOM!其中完全不需要权限验证,HTTP 200 !值得注意的是,我构造的请求不算大,但返回数据竟然把PostMan都崩溃了,可见其响应数据算是非常之多了。

这里,我们再来认识一下ServiceNow,它是一款云服务管理工具,安装之后会包含一个名为“MID Server”的服务,它负责把数据信息推送到云实例中,其中推送的数据信息包括用户和主机等活动目录数据,这是ServiceNow可以把事件或帮助台票据链接到特定用户的功能,也是工程师在生产系统中可以通过ServiceNow的Configuration Item DB导入和管理实现维护的手段。

04.png

也就是说,通过其中的实例请求,攻击者可以获取到所有的内部服务,包括IP地址和系统信息描述等,也能获取到一些绝佳的请求更改、事件信息或服务请求票据。

为此,我特意写了一个PowerShell脚本并转化成Python,用它可以实现整个ServiceNow实例的数据下载,有了这个功能,漏洞最终从P4被提升到了P1。

漏洞上报后,特斯拉在3小时后就立马删除了该代码库,之后特斯拉在API接口请求中加入了对ServiceNow实例请求的MFA验证手段。

05.png

经验总结

要擅于应用搜索语法,上述的特斯拉代码库曝露在网已经快3年多了,而其中的更新代码恰巧就被我发现了;

自动化工具不能发现所有东西,有时候需要亲自动动手;

任何要都可以发现漏洞,有些漏洞需要的漏洞技术并不是太多,但前提是你需要了解某些应用逻辑,知道从哪下手。

参考来源

medium

来源:freebuf.com 2020-07-02 20:39:28 by: clouds

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论