神州租车的数据安全问题(secure problem of ZuChe.com)

说实话我不知道从何开始写,我发现了神州租车的一些,问题;而且非常严重。

我曾经试图联系他们,但是没有得到任何反馈,所以我决定写出来,作为一个记录。

当然,通过我的分析及实践,可以进一步得到它的用户数据,甚至进行修改或破坏,但这不是我的初衷,所以这里会做一些模糊处理(相信官方补丁会跑在那些有心者前面)。

直接拆开它的apk【其实如果用sniffer之类的,会比我这么做来的更直接;我这么做的原因就是顺手而已。】

可以得到对应的源文件,通过一些简单的代码和逻辑分析(几乎没有混淆),可以得到两个很霸道的接口,一个接口是通过user id来获取对应该用户所有订单信息的,获取到的内容可能如下:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
<;soap:Body>;
<;OrderListQueryResponse xmlns="http://tempuri.org/">;
<;OrderListQueryResult xmlns="http://tempuri.org/">;
<;CurrentPage xmlns="OrderListQueryResult">;1<;/CurrentPage>;
<;OrderList xmlns="OrderListQueryResult">;<;ns1:OrderValue xmlns:ns1="OrderValue">;
<;Address xmlns="OrderValue">;
<span style="color: #ff0000;">
<strong>南宁市西乡塘区北湖路西三里20号【模糊】401号房</strong></span><;/Address>;
<;CarType xmlns="OrderValue">;标致207/三厢/1.4手动<;/CarType>;
<;Comments xmlns="OrderValue">;<;/Comments>;
<;DrivingLicenceNo xmlns="OrderValue">;null<;/DrivingLicenceNo>;
<;Email xmlns="OrderValue">;<;/Email>;
<;FromAddr xmlns="OrderValue">;null<;/FromAddr>;<;FromCity
xmlns="OrderValue">;南宁<;/FromCity>;
<;FromDate xmlns="OrderValue">;2013-04-08 12:00
<;/FromDate>;
<;FromProvince xmlns="OrderValue">;广西壮族自治区<;/FromProvince>;
<;FromStore xmlns="OrderValue">;广西体育馆店<;/FromStore>;
<;IdCardNo xmlns="OrderValue">;
<span style="color: #ff0000;"><strong>450104【模糊】0510</strong></span><;/IdCardNo>;
<;IdCardType xmlns="OrderValue">;10<;/IdCardType>;
<;InsuranceFee xmlns="OrderValue">;30.0<;/InsuranceFee>;
<;Mobile xmlns="OrderValue">;
<strong><span style="color: #ff0000;">158【模糊】1523</span></strong><;/Mobile>;
<;OrderNo xmlns="OrderValue">;13653269673220 ? ? ?<;/OrderNo>;
<;OrderStatus xmlns="OrderValue">;已完成<;/OrderStatus>;
<;Picture xmlns="OrderValue">;http://static.zuchecdn.com/images/terminal/bj207.jpg<;/Picture>;
<;ReturnAddr xmlns="OrderValue">;广西壮族自治区南宁市江南区星光大道3号广西体育馆<;/ReturnAddr>;
<;ServiceFee xmlns="OrderValue">;20.0<;/ServiceFee>;
<;ToCity xmlns="OrderValue">;南宁<;/ToCity>;
<;ToDate xmlns="OrderValue">;2013-04-09 12:00<;/ToDate>;
<;ToProvince xmlns="OrderValue">;广西壮族自治区<;/ToProvince>;
<;ToStore xmlns="OrderValue">;广西体育馆店<;/ToStore>;
<;TotalCarRentMoney xmlns="OrderValue">;98<;/TotalCarRentMoney>;
<;TotalOrderPrice xmlns="OrderValue">;148<;/TotalOrderPrice>;
<;UserName xmlns="OrderValue">;
<span style="color: #ff0000;"><strong>赖【模糊】</strong></span><;/UserName>;
<;VehicleNo xmlns="OrderValue">;粤BF1U47<;/VehicleNo>;
<;/ns1:OrderValue>;<;/OrderList>;
<;PageCount xmlns="OrderListQueryResult">;1<;/PageCount>;
<;PageSize xmlns="OrderListQueryResult">;999<;/PageSize>;
<;RowCount xmlns="OrderListQueryResult">;1<;/RowCount>;
<;StateValues xmlns="OrderListQueryResult">;<;Code xmlns="StateValues">;ACK<;/Code>;
<;Description xmlns="StateValues">;成功<;/Description>;
<;/StateValues>;<;/OrderListQueryResult>;
<;/OrderListQueryResponse>;<;/soap:Body>;<;/soap:Envelope>;

注意看,应该猜的到这些都是什么。

另外一个接口就更隐晦一些,是通过user id身份证来直接修改用户密码,甚至不需要提供之前的密码。而通过上面的接口去获取订单信息,可以得到身份证等信息。所以,这是一个钥匙挂外面的锁。

还有一些小漏洞的接口,这里就不表了。相信官方更了解。

至此只能说,神州你上上心吧。

作为你们的用户之一,深表伤心和失望。

BTW,我会在10日后更新更多的细节。

后文:神州租车的数据安全问题[续](secure problem of ZuChe.com [End])