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

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

缺陷编号:wooyun-2012-011488

漏洞标题:浙江移动任意用户密码修改

相关厂商:浙江移动

漏洞作者: seclab_zju

提交时间:2012-08-28 23:41

修复时间:2012-10-12 23:42

公开时间:2012-10-12 23:42

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

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

浙江移动网站存在漏洞,可以修改任意用户的服务密码。使用修改后的密码登录后可以进行包括更改套餐、查询用户个人资料、查询账单等操作。进一步的查看通话详单等操作需要二次验证,但仍然可以通过爆破方式进入。

详细说明:

进入找回密码页面,填入任意一个浙江移动号码,会进入找回流程。


系统会发送一个6位纯数字验证码到手机


由于6位数字总共只有10万种组合,写一个脚本遍历这些组合post到页面上即可。但这里的难度在于验证码的有效期只有15分钟(对有些用户是30分钟,不知道为什么),因此需要在一个网速较快的环境快速把修改密码的页面post出去。如果是30分钟时限,每秒需要post 10^6/(30*60)=555个packet。我这里教育网出去比较慢,但也可以在30分钟内遍历50%左右即5万个密码,相信公众网的速度应该会更快。

漏洞证明:

只盲测了自己和家人的手机,无法提供其他间接证明。就贴个部分代码截屏可以伐?


修复方案:

程序设计的逻辑上密码找回流程必须使用cookie,但这里并没有将cookie和某次密码找回的过程绑定,因此无法对重试的次数进行限制。

request.add_header('Cookie', 'WTSESSION=1J3tQ82YxJ62qXSm1Tz8Msf5r9xkQpMjLLzJS21vplMvXTV2Tw6V!290425296')


上面的攻击代码中只需要填入任意时候产生的合法WTSESSION即可,可见cookie并没有绑定到当次业务流程。
目前采取的IP封禁貌似可行,但其实很容易用代理绕过。
另外一个修复方法相对简单点:加验证码(顺便说下,移动的验证码设计的很好,比较难分割和OCR),不过会破坏用户体验。
可能还有更好的方法吧,我暂时就想到这两条。
最后我的IP貌似被浙江移动给人工封了,希望能恢复回来(就是60.191.*.*的那个),本次测试纯属白帽子行为,仅测试了自己和家人的三台手机,虽然不希望移动发个公仔给我,但好歹实验室的其他老师和同学也要上移动网站的说 :)

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2012-09-01 23:36

厂商回复:

CNVD确认漏洞情况,同时已经将漏洞信息转由CNCERT交由测评组同事(现在浙江)处置。
按完全影响机密性、部分影响可用性进行评分,rank=8.47*1.3*1.3=14.313

最新状态:

暂无