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

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

缺陷编号:wooyun-2015-0120093

漏洞标题:黑魔法系列-我是如何重置V电影主站任意用户密码的

相关厂商:vmovier.com

漏洞作者: 黑暗游侠

提交时间:2015-06-15 11:25

修复时间:2015-07-30 17:26

公开时间:2015-07-30 17:26

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-15: 细节已通知厂商并且等待厂商处理中
2015-06-15: 厂商已经确认,细节仅向厂商公开
2015-06-25: 细节向核心白帽子及相关领域专家公开
2015-07-05: 细节向普通白帽子公开
2015-07-15: 细节向实习白帽子公开
2015-07-30: 细节向公众公开

简要描述:

希望能获得6月洞主演艺最佳思路漏洞入选名额

详细说明:

又去重温了一遍多啦A梦,看到了v电影视频门户
习惯使然了,顺手测试一下,找到了黑魔法,快修复吧
忘记密码:
http://www.vmovier.com/user/forgetpwd
填上任意用户的邮箱,然后发送,先来看一下原装的重置链接是什么

http://www.vmovier.com/user/resetpwd?email=**@**.***&token=f321cd2871eac182554f78ab6b3bb9c3


访问以下
自动重置了新的密码,如图:

24.png


链接很简单,问题一目了然,控制了 token 就控制了整个重置机制
那么
看 token
f321cd2871eac182554f78ab6b3bb9c3
what is this ?
经过多次测试验证,这里直接给出答案:

token=md5(时间戳)


时间戳是服务端接收数据包并处理的时候的瞬间时间戳
格式为unix格式
笑话,服务端处理的瞬时时间我们怎么知道,难道只有对某几十秒内进行fuzzing么?
no
这里还存在一个tmpkey,tmpkey的时间戳来自当前数据包的时间戳,更重要的是,这串时间戳包含在cookie里可以直接获取
服务端验证机制应该类似是:

……
if(token==key || token == tmpkey){
…………}


来实际看一下对比:
正常发送的邮件数据包,可以看到cookie里的时间戳为:
1434110820
md5加密后:
20fcfdec4985c7f81cfe359a5f792377
再来看实际收到的邮件token:

25.png


看到了吧,实际上是有两个key的
即使我们无法计算出正常流程获得的邮件中的token,但是我们可以直接获取post包中的当前时间戳,加密后放到如下链接:

http://www.vmovier.com/user/resetpwd?email=任意用户邮箱&token=本地计算的时间戳加密哈希


然后访问之,即可直接重置密码:

27.png


========================================================
那么黑魔法在哪?
key是我们控制的,包括加密的哈希原型
我们可以自己自定义想要的任何key
自定义一个时间,2008-1-1 1:1:1 转换成unix如下:

28.png


当然这个时间可以是你的生日,是开国大典,是多啦A梦刚认识大雄的日期。。。
复制下来,然后再次找回密码,替换掉数据包里的时间戳。。。

29.png


1199120461
md5加密后得到:

d79d46cc75b8d6059d9c3fa441bae060


直接访问:

http://www.vmovier.com/user/[email protected]&token=d79d46cc75b8d6059d9c3fa441bae060


30.png


多么简单实用的黑魔法,秒杀一切用户

漏洞证明:

修复方案:

20rank吧,写了那么多

版权声明:转载请注明来源 黑暗游侠@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:16

确认时间:2015-06-15 17:24

厂商回复:

非常感谢发现这个重要bug,已经修复

最新状态:

暂无