漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-017916
漏洞标题:我是如何重置爱爱医任意用户密码的
相关厂商:爱爱医
漏洞作者: se55i0n
提交时间:2013-01-26 12:54
修复时间:2013-03-12 12:55
公开时间:2013-03-12 12:55
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-01-26: 细节已通知厂商并且等待厂商处理中
2013-01-26: 厂商已经确认,细节仅向厂商公开
2013-02-05: 细节向核心白帽子及相关领域专家公开
2013-02-15: 细节向普通白帽子公开
2013-02-25: 细节向实习白帽子公开
2013-03-12: 细节向公众公开
简要描述:
rank不给力,礼物要给力呀!
详细说明:
问题缺陷在“通过手机重置用户密码”,虽然爱爱医的同学在这方面还是下了不少功夫的(限制ip日操作次数、同帐号操作请求次数),且看我是如何突破限制重置任意用户密码的;
1)手机注册用户一枚,通过之前的测试发现系统会限制ip日操作次数、同帐号操作请求次数,但是系统没有对手机验证码校验的错误次数做限制;
2)我们可使用爆破的方式获取到用户真实校验码(根据系统response字节长度确定),但是系统限制了校验码使用次数(使用一次即过期),我们无法通过常规渠道利用获取到的真实验证码来重置用户密码;
3)但是我们同时注意到,在爆破到真实验证码时,系统返回了这样一段内容;
4)哈哈,聪明的同学可能都想到了,系统可能会以“ckey”、“rcode”参数值为凭证来进行下一步的密码重置校验,但是我们如何知道是怎样一种逻辑呢,很简单,直接进行一次真正的密码重置并在过程中抓包来分析系统的逻辑;
5)通过抓包我们发现,当我们输入真正的验证码时系统会将"ckey"、“rcode”的参数值分别传递给“kcode”和“tcode”参数,并生成如下url请求;
6)如此看来,我们的推断基本正确,那么我们只要爆破到真实验证码就可以获取到“ckey”、“rcode”参数值,当然也就知道了“kcode”和“tcode”参数值,有了上面的参数值我们就能直接重置用户密码了,let's go;
7)获取到我们需要的相关参数值;
8)利用上面获取到的参数值构造url请求,直接来到了密码重置环节;
9)输入我们需要重置的密码即可(突破限制利用漏洞演示完成);
漏洞证明:
见详细说明~
修复方案:
版权声明:转载请注明来源 se55i0n@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2013-01-26 14:00
厂商回复:
感谢
最新状态:
暂无