漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0157507
漏洞标题:亲宝宝Android客户端任意账户密码重置
相关厂商:http://www.qbb6.com/
漏洞作者: 路人甲
提交时间:2015-12-02 10:02
修复时间:2016-01-16 10:04
公开时间:2016-01-16 10:04
漏洞类型:设计错误/逻辑缺陷
危害等级:高
自评Rank:20
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-12-02: 积极联系厂商并且等待厂商认领中,细节不对外公开
2016-01-16: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
媳妇推荐我用这个APP,于是顺手改了她的密码。。。
详细说明:
在用手机注册的时候,发现验证码是4位的,感觉有被暴力猜解的可能,于是测试一下,结果却发现验证码在发送请求的时候被直接返回了。这样,即使用一个实际不存在的手机号也可以注册,如13512345678。
验证码 code:6390被直接返回了
输入验证码,进到这里。提示已注册过了,可以登录或者继续注册一个(如果选择这一项,原来的内容就废了,失去了和手机号的关联)。登陆进去发现,这应该是一个测试人员的账号,囧
同样的方式,换一个没被注册过的号码试试,可以注册成功。
并且找回密码也是一样,可以直接根据返回的code重置密码。
实际上,输入验证码后是会再次到服务器验证的。所以在请求时直接返回了验证码应该是个bug,但是影响很大。
如图,在对code进行des加密后,会再次到服务器上验证。
发送到服务器的数据包会进行自签名(计算值sign),如果用burp简单的修改手机号码后就进行重发就会报500
但是这个算法是可以被模拟的,也不是绝对的安全。
用一个类似的算法就可以计算sign。
漏洞证明:
可以随意申请账号,也可以重置任意账号密码。
修复方案:
1. 千万不要在请求手机验证码时直接把验证码通过web返回
2. 最好使用6位验证码
3. IOS端如果是类似逻辑需要一并修改
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞Rank:15 (WooYun评价)