频道栏目
首页 > 资讯 > 网络安全 > 正文

你知道汽车卫星定位设备是如何泄露你的位置信息的么

17-05-17        来源:[db:作者]  
收藏   我要投稿

你知道汽车卫星定位设备是如何泄露你的位置信息的么。很多汽车保险公司为你提供卫星定位设备,用户可以把卫星定位设备安装到私家车上,那在任何时间和地点,都可以追踪你的私家车位置。

当安装了卫星定位设备,汽车保险公司可随时知道你的车到过什麽地方。当然,如果你的私家车被贼人偷了,警方可通过卫星定位更有效找回你的私家车。

汽车保险公司还会提供专门的APP,即使你看不到你的私家车,也能透过手机上的APP知道你的私家车状况。

接着,我下载了汽车保险公司的安卓版APP,不幸地,APP需要Google Play服务才可以正常运行。我是一个自由及开放源代码软件传播人,我尝试使用开放源代码APP来运行保险公司的APP,而不使用Google Play服务。

幸然,我还是一个软件开发者。现在,我开始分析保险公司APP的APIs,然後使用mitmproxy中间人代理软件,来开发一个适用于保险公司APP的客户端代码。

授权

当运行保险公司APP时,用户需要授权APP存取你的卫星定位设备位置。

当一开始授权时,APP会要求输入你的身份证号码。我填写了我的身份证号码,APP就运行以下的代码:

curl -X POST -d 'BLUCS§§-1' http:///BICServices/BICService.svc/restpostcheckpicf

接着,网页伺服器端作出请求响应,并存取了你的手机号码:

2§§§-1

当看到这些凌乱的代码,得知APP是使用HTTP请求响应,代码的第一个和最後一个叁数是常量,而这代码只需要两个叁数就获得我的手机号码。假如我输入不存在的身份证号码,会得到以下代码:

-1§§§-100%

然後,我需要确认手机号码是否正确。接着,我需要输入密码。在之前,我已经透过电邮,向保险公司发送了我预设的密码。输入密码后,APP就运行以下代码:

curl -X POST -d 'BLUCS§§§§-_unknown---§§2§

§§-1' http:///BICServices/BICService.svc/restpostsmartphoneactivation

接着网页伺服器端作出以下响应:

0§§

这叁数每次都会改变,这看来是用作识别客户端的ID。当完成这阶段操作,APP就得到授权,全面存取私家车的所有数据。

追踪私家车位置

我开始实现追踪汽车的功能,这功能可以存取20个私家车最近到访过的地点。现在开始分析APP是怎样存取数据:

curl -X POST -d 'ASS_NEW§§2§-1' http:///BICServices/BICService.svc/restpostlastnpositions

网页伺服器端作出以下响应:

0§20§§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1---§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----§DD/MM/YYYY HH:mm:SS###0#1#1#1----

没有header头,没有cookie,没有授权认证?!

没错,你的猜想是对的。你只要有私家车的license许可证,就可以存取该私家车的20个最近到访地点。那有什麽用途,我将会在下文解译。

我一开始以为,伺服器储存了我的IP地址,并授权了我的IP地址可储存该私家车的地点数据。但是,我尝试使用VPN连接伺服器,居然也能成功存该私家车的地点数据。

然後,我尝试输入不存在的私家车license许可证,得到以下响应:

-2§TARGA NON ASSOCIATA%

这表示:数据库没有该私家车的license许可证

那麽我们如何获得其他私家车的license许可证,这很容易实现。所有的私家车license许可证都储存在保险公司的数据库,而且这些数据还包括了该车最近到访过的20个地点。

网页客户端

汽车保险公司还提供了网页端,这网页端提供了更多功能给用户。我登入了网页并开始分析,发现网页有几个不同的域名,并且在任何请求响应中,都会使用到用户的cookie。有一个请求响应值得我关注的,是该请求响应不需要任何认证

curl http:////(S())/NewRemoteAuthentication.aspx?RUOLO=CL&ID=&TARGA=&CONTRATTO=&VOUCHER=

在伺服器请求响应後,网页客户端显示的HTML页面:

NewRemoteAuthentication

-->

/(S())/NewRemoteAuthentication.aspx?RUOLO=CL&ID=&TARGA=" id="Form1">

self.close

// -->

这里包含一个iframe,而且该iframe还是外部链接的!

透过这页面你可以得到:

关注了该保险公司网站的用户全名

私家车的品牌和型号

私家车的总行驶里数

私家车的行驶次数

私家车每月行驶了多少次

存取每月行驶的详细数据

存取每日行驶的详细数据(经纬度、时间、日期)

存取每月行驶数据(驾驶私家车的频率)

{C}

这里有大量数据,而且这些数据,是从安装卫星定位设备那刻就开始记录。

保险公司APP不需要任何认证就可以存取数据库资料,因此我可以把刚刚已知的叁数填进去,向数据库请求资料。通常地,数据库请求不需要知道所有叁数,我只需要删除一些不必要的叁数,剩下的叁数是我需要的。因此,我可以把代码简化成这样:

curl http:////(S())/NewRemoteAuthentication.aspx?RUOLO=CL&ID=&TARGA=

可这里仍然有。这看来是个数字叁数,我把之前的到得数字叁数填进行,最後可以成功运行。

所以,http:////(S())/NewRicerca.aspx这页面显示了所有我想要的数据。但是我们怎样得到这叁数?

我尝试删除这叁数,可是最终只得出一个空白的页面。

接着,我认为NewRemoteAuthentication.aspx这页面是负责这个叁数。我尝试在这页面删除这叁数,令我惊喜的是,这页面跳转回NewRicerca.aspx这个页面,而且还自动填写了这叁数。现在,我可以调用NewRicerca.aspx这页面来看所有数据库资料。

结论

你只需要知道私家车的license许可证,就可以存取到该私家车的行驶资料,车主全名,私家车的位置。

我把这漏洞提交给了CERT Nazionale。

该汽车保险公司在这三星期内,已经更新了网页端的逻辑漏洞。该公司还透过电邮向用户表示,已经修复了APP手机端的漏洞。而在我向CERT Nazionale提交了漏洞後,旧的网页端服务在一个半月後已经关闭了。

这是我的猜测,这个漏洞可能已经存在了三年,因为第一代安卓版APP的APIs仍然是使用至今。

相关TAG标签
上一篇:支持MACRBACABAC多种模型的Golang访问控制框架Casbin
下一篇:全球勒索病毒爆发 普通用户如何应对
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站