当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-01-26: 细节已通知厂商并且等待厂商处理中
2013-01-26: 厂商已经确认,细节仅向厂商公开
2013-02-05: 细节向核心白帽子及相关领域专家公开
2013-02-15: 细节向普通白帽子公开
2013-02-25: 细节向实习白帽子公开
2013-03-12: 细节向公众公开

简要描述:

rank不给力,礼物要给力呀!

详细说明:

问题缺陷在“通过手机重置用户密码”,虽然爱爱医的同学在这方面还是下了不少功夫的(限制ip日操作次数、同帐号操作请求次数),且看我是如何突破限制重置任意用户密码的;
1)手机注册用户一枚,通过之前的测试发现系统会限制ip日操作次数、同帐号操作请求次数,但是系统没有对手机验证码校验的错误次数做限制;

9.png


2)我们可使用爆破的方式获取到用户真实校验码(根据系统response字节长度确定),但是系统限制了校验码使用次数(使用一次即过期),我们无法通过常规渠道利用获取到的真实验证码来重置用户密码;

0.png


3)但是我们同时注意到,在爆破到真实验证码时,系统返回了这样一段内容;

{"ckey":"aaaaaaaaaaaaaaaaaaa","rcode":bbbbbbbbbb,"status":"success"}


4)哈哈,聪明的同学可能都想到了,系统可能会以“ckey”、“rcode”参数值为凭证来进行下一步的密码重置校验,但是我们如何知道是怎样一种逻辑呢,很简单,直接进行一次真正的密码重置并在过程中抓包来分析系统的逻辑;
5)通过抓包我们发现,当我们输入真正的验证码时系统会将"ckey"、“rcode”的参数值分别传递给“kcode”和“tcode”参数,并生成如下url请求;

http://auth.iiyi.com/safe/mod_pwd?kcode=aaaaaaaaaaaaaaaaaaa&tcode=bbbbbbbbbb


6)如此看来,我们的推断基本正确,那么我们只要爆破到真实验证码就可以获取到“ckey”、“rcode”参数值,当然也就知道了“kcode”和“tcode”参数值,有了上面的参数值我们就能直接重置用户密码了,let's go;
7)获取到我们需要的相关参数值;

8.png


8)利用上面获取到的参数值构造url请求,直接来到了密码重置环节;

6.png


9)输入我们需要重置的密码即可(突破限制利用漏洞演示完成);

7.png

漏洞证明:

见详细说明~

修复方案:

版权声明:转载请注明来源 se55i0n@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2013-01-26 14:00

厂商回复:

感谢

最新状态:

暂无


漏洞评价:

评论

  1. 2013-02-26 09:21 | D&G ( 普通白帽子 | Rank:523 漏洞数:103 | going)

    怎么突破限制ip日操作次数、同帐号操作请求次数的呢