漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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和某次密码找回的过程绑定,因此无法对重试的次数进行限制。
上面的攻击代码中只需要填入任意时候产生的合法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
最新状态:
暂无