漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-021771
漏洞标题:麦包包 任意用户密码重置漏洞(二)
相关厂商:麦包包
漏洞作者: px1624
提交时间:2013-04-14 11:38
修复时间:2013-05-29 11:39
公开时间:2013-05-29 11:39
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-04-14: 细节已通知厂商并且等待厂商处理中
2013-04-15: 厂商已经确认,细节仅向厂商公开
2013-04-25: 细节向核心白帽子及相关领域专家公开
2013-05-05: 细节向普通白帽子公开
2013-05-15: 细节向实习白帽子公开
2013-05-29: 细节向公众公开
简要描述:
之前发了麦包包任意用户密码重置的漏洞,http://www.wooyun.org/bugs/wooyun-2010-021480,今天去看了下,已经采取相应的措施进行修补了。于是改变思路,结果发现可以以另一种方法重置麦包包任意用户密码,比上次的更严重,秒改啊!~~
详细说明:
漏洞原因:
重置密码的链接没有进行严格的验证。重置密码链接组成如下:
可以通过修改username处的用户名,来重置任意用户密码。
重置密码证明过程:
1 老规矩,点击忘记密码
图1
2 选择邮箱找回密码
图2
3 邮箱中收到一条找回密码的链接
图3
4 点击那个链接,会进入密码重置页面
图4
5 将地址栏的邮箱账户,修改成另一个小号(手机号注册的),发现也可以进入修改密码的页面
图5
6 修改密码,显示修改成功。
图6
7 去登录试试,成功登录
图7
8 只是重置自己的小号,貌似说服力不够额。那就去随便修改下别人的,这里我试了试用户名为 mbaobao
表示毫无压力,秒改!(这里麻烦你通过之前的数据库给把密码改回去吧)
图8
漏洞证明:
证明过程如上。
个人猜测存在这个漏洞的原因是因为,那个密码重置地址的验证有问题,应该是这么验证的:
判断code和username是否均存在于服务器的数据库中,如果是,那就验证通过。
而并没有判断code和username是否一一对应,或者压根设计的时候就没有设计成一一对应。
而且这个code没有时间有效期的限制,测试的时候我所用的链接的code是我4天前获取的。
并且这个code也没有次数的限制,貌似永远不会失效。。。
相比上个密码重置漏洞, WooYun: 麦包包 任意用户密码重置漏洞 ,这个是更加的严重额,只需要知道用户名,就可以秒改密码了。。。
修复方案:
修补
1 设置code和username为一一对应
2 设置code的时效性和设置一个code只能用一次就失效
版权声明:转载请注明来源 px1624@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2013-04-15 08:33
厂商回复:
感谢 px1624,我们正安排修复!
最新状态:
2013-04-15:已修复