前言:
前段时间在乌云上爆出宝驾租车存在SQL注入漏洞,早在2014年我就对该系统进行了初步安全审计并提交给了宝驾,想不到2015年都还没有去修复,安全意识令人感动啊。
0x1【风险:中】无需验证可以无限制批量上传图片,恶意攻击者可以制作批量上传工具,从而造成服务器磁盘空间不足导致瘫痪。
详细流程请看如下源码
0x2【风险:高】已知注册用户的手机号,既可以随意改动该用户的密码,从而进行盗取用户余额。
这个逻辑漏洞在最新版本中已经修复。但是逻辑上仍然存在一些问题,问题网页:
Post:http://api.baojia.com/v2/Api/User/checkmobile?mobile=<注册用户的手机号>,通过不断的调用这个网页,可以构成短信轰炸,经过测试,每过大概不超过一分钟会给用户手机发一条验证码短信。短短半个小时不到收到了27条短信
0x3【风险:高】存在用户隐私泄露。如下图
问题网页为:http://api.baojia.com/v1/Api/Trade3/IdenTity?uid=545012,提供一个有效的uid就能直接用浏览器得到用户的信息,开发确实略显仓促。
下图中的uid和ifLogin作为登录的重要凭据,采用DES和Base64联合加密,解密的密钥能直接在APK中找到
0x4【风险:高】电子钥匙开锁流程过于简单,整个流程可以被伪造,并且存在GSM劫持。
目前这个流程还没有详细审计测试,但是很明显整个开锁的流程代码位于包com.baojia.my下面的类,攻击者通过逆向很容易模拟整个电子钥匙取车的流程进行攻击,另外GSM劫持流程可参腾讯tsrc拉客和大夫,杰哥等伙伴们的博文:
http://security.tencent.com/index.php/blog/msg/31
0x5【风险:高】对app重新打包无感知,对代码注入无感知,无加固,无任何反调试处理,无混淆处理等。
0x6【风险:高】app与服务器端通信协议采用http通信,加密过于简单,采用DES加密,密钥能在APK中获取到,很容易被监听,即便换成HTTPS协议通信,处理不当也能被劫持,监听。
0x7【风险: 高】服务器对参数过滤不严,存在SQL注入漏洞,如下图,可以看出,数据库采用MYSQL,版本高于4.0,支持UNION查询,存在被暴库的风险
这里采用注入工具sqlmap来展示漏洞被利用的过程,注入点如下:
下图曝出mysql的当前用户和当前数据库
。
下图是数据库baojia中表的名字
下图是表member中部分字段的内容: