漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2016-0196634
漏洞标题:中关村在线网上商城设计缺陷可登录任意账户(外送注册任意手机号/短信炸弹)
相关厂商:中关村在线
漏洞作者: 杨某某
提交时间:2016-04-15 17:48
修复时间:2016-05-30 21:20
公开时间:2016-05-30 21:20
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2016-04-15: 细节已通知厂商并且等待厂商处理中
2016-04-15: 厂商已经确认,细节仅向厂商公开
2016-04-25: 细节向核心白帽子及相关领域专家公开
2016-05-05: 细节向普通白帽子公开
2016-05-15: 细节向实习白帽子公开
2016-05-30: 细节向公众公开
简要描述:
中关村在线网上商城设计缺陷可登录任意账户(外送注册任意手机号/短信炸弹)
详细说明:
1.登陆任意账户
1.1首先是用户注册界面
在输入手机号后,鼠标焦点转移到其它输入框,此时网页会发送一个ajax请求,验证手机号是否注册:
手机号已注册返回flag为0,未注册flag为1
可以burp暴力跑出已注册手机号
1.2登陆处
有两种登陆方式,我们选手机验证码登陆
这里填我们自己的手机号,收到验证码后,把手机号改为前一步跑出的已注册用户,验证码用我们收到的,成功登陆:
2.注册任意用户
上一个洞第二步,如果输入未注册的手机号,登陆,系统会默认这次登陆行为等同为注册,通过1.1的步骤可以证明:
登陆前,显示为未注册
登陆后,手机号已注册,手机号原主人无法注册了
3.短信炸弹:
还是登陆处,这里对发送验证码做了两个限制:
1.限制发送周期
2.需要填写手机号和正确的验证码
这里的两个限制并不能杜绝短信炸弹:
1.在js里限制发送周期是没用的,包重放就绕过了
2.验证码在生命周期内可以反复使用
如图:
漏洞证明:
修复方案:
1.验证码和手机号绑定,而不是一段时期内有效
2.在服务端限制验证码发送周期
3.这一点可以参考是否正确:不要在收入手机号后就显示是否已注册,这点同样可以用在账号,银行卡号等上面,只有在点击注册后才能知晓结果,并且该注册操作要防范包重放攻击,毕竟正常用户不会用别人的手机去注册,所以也对用户体验影响个人认为不大
版权声明:转载请注明来源 杨某某@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2016-04-15 21:12
厂商回复:
已经修复,谢谢检测。
最新状态:
暂无