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

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-011720

漏洞标题:微信任意用户密码修改漏洞

相关厂商:腾讯

漏洞作者: only_guest

提交时间:2012-09-04 05:09

修复时间:2012-10-19 05:10

公开时间:2012-10-19 05:10

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-09-04: 细节已通知厂商并且等待厂商处理中
2012-09-04: 厂商已经确认,细节仅向厂商公开
2012-09-14: 细节向核心白帽子及相关领域专家公开
2012-09-24: 细节向普通白帽子公开
2012-10-04: 细节向实习白帽子公开
2012-10-19: 细节向公众公开

简要描述:

腾讯微信任意用户密码修改.

详细说明:

今天发现个微信群发的漏洞.还没玩.就被修补了.
于是就有了这个漏洞的产生.
同样问题产生在重置用户密码的环节.
在微信官方的首页上发现新增了如下功能模块


访问后看到这个功能.来了兴趣


在这个页面输入一个已经注册了微信的手机号.


得到如下提示


选择我已收到验证码就跳转到一个修改密码的页面,如下


在这一步抓包.得到如下包文

check=false&phone=18666666666&t=w_password_phone&isemail=0&value=18666666666&method=reset&country=A86&getmethod=web&password=zzzzzz&password2=zzzzzz&verifycode=1234


将包文中的verifycode进行重复提交后发现会提示


这样的话.就要想办法去突破.
经过一系列尝试后发现如果在phone=18666666666的号码后面添加不为数字的字符时,可以绕过此限制.于是推理出其判断方法
如果phone=18666666666的尝试次数大于阀值,则提示请求过于频繁
但在这一步之前没有对phone进行提纯.所以可以将特殊字符带入
但在下一步的时候进行了提纯.只取了phone中的数字部分.
然后在取出此号码的verifycode进行比对.
比对成功则修改密码


修改密码成功.
这个地方的薄弱环节在于微信重置密码的验证码为4-5位纯数字.
且数字范围在1000-20000之间
也就是说.我只要尝试19000次.我用50个线程发包.3分钟即可成功修改一个密码.
在发现此漏洞后.我修改了两个人的微信帐号.
一个是最近很喜欢的明星柳岩的经纪人
柳岩在微搏上公布了经纪人的手机号.
成功修改进入后.通过微信自带的离线消息查看功能.可以成功查看其所有QQ好友
于是得到了柳岩的QQ号..但是拒绝添加好友了..伤心
这里由于隐私原因.就不上图了.
另外一个是腾讯的某高管.我在百度上搜索到了腾讯高管的list
然后通过list里的手机号修改了其密码.和尊敬的马化腾马大哥进行了一次亲密的交谈.
由于夜深了.他不在线.所以没收到其回应.附图几张.



和马哥开了个小玩笑.
然后找到了最近正好很火的周鸿祎手机泄漏的视频.
同样通过音频分析得到号码.尝试修改其微信密码..
发现周哥果然没有注册微信.放弃了尝试.

漏洞证明:

修复方案:

增强下机制吧.

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2012-09-04 10:58

厂商回复:

感谢反馈,我们正在跟进处理。

最新状态:

2012-09-04:我们已经修复了此问题,非常感谢您的报告。

2012-09-04:感谢乌云社区和这位漏洞发现者。收到乌云通知之后,我们已第一时间屏蔽该BUG,避免被恶意利用。