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

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

缺陷编号:wooyun-2013-045739

漏洞标题:djcc舞曲网任意用户密码重置漏洞(已证明)

相关厂商:www.dj.cc

漏洞作者: px1624

提交时间:2013-12-13 16:42

修复时间:2013-12-18 16:43

公开时间:2013-12-18 16:43

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

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-12-13: 细节已通知厂商并且等待厂商处理中
2013-12-18: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

看到有人说你们网站给送了块表,羡慕嫉妒恨啊(虽然对我没一点用)!我是来求礼物的,为了证明漏洞的严重性与真实性,我已经去成功重置了两个官方的工作人员的帐号。

详细说明:

1 去dj.cc或者djcc.com随便注册个帐号,然后去找回密码。填写好登录邮箱和验证码后,点击找回密码,会显示给邮箱发个邮件。

1.png


2 执行1中的过程同时抓包,可以看到是一个post请求,3个参数,username是邮箱,rvcode是验证码,sid猜测应该是用来校验的。

2.png


3 打开邮箱,发现了那个重置密码的链接,有一个key用来校验URL。

3.png


4 观察了一下,看起来是个32位的md5加密,扔到cmd5解密不出来。然后我去试着将那个post请求中的sid进行32位md5加密,与邮箱中的key对照,发现也不对。
5 到这步可能很多人已经放弃了吧。不过我们怎么能这么轻易就放弃呢,然后我去试试(邮箱+sid)的组合进行md5加密,发现和邮箱中的key对应了。

4.png


6 总结,看来这里的重置密码验证方式就如我上面猜测的那样,sid是用来对应用户的邮箱。然后php端的加密的代码基本就下面这句了吧。

$key=$username.$sid;

漏洞证明:

上面说的那么牛逼,但是到底是不是可以呢?剑心教导过我们,不以事实说话的漏洞都是耍流氓,所以这里我们要去找几个帐号去重置下他们的密码。重置一般用户没啥意思,这里我要去重置下他们工作人员的帐号。随便在网站里转了转,发现了两个目标。
1 这里重置密码的时候,不是有个客服的求助qq么,那么我们就去重置下他的密码。

5.png


2 填写好后,点击找回密码并抓包。

6.png


3 然后根据username和sid去生成key。

7.png


4 生成key后用那个组合好的url去重置密码就可以了。

8.png


5 重置好密码后,就可以随便登录了。可以看到的确是一个官方的人员。

9.png


6 对账户是完全控制的节奏啊。

10.png


7 djcc.com这个域名也是通杀的!用的是一个登录系统的帐号和密码。

11.png


8 嘿嘿,又看到一个官方的工作人员。

12.png


9 果断重置其帐号密码(注意,和上面那个不是一个帐号额,名字头像有点像而已)。

13.png


修复方案:

1 最好别用md5加密
2 如果用md5加密,也不要只加密一次
3 就算加密一次,也不要用这么简单的组合方式
4 重置的两个工作人员的帐号是[email protected][email protected],密码都改为了a123456
5 安全无小事,却从小事做起,希望你们认真做好网站,为用户提供一个更加安全的网络空间,最后祝你们网站越来越好
(ps:如果可以,可以不可以给送点礼物或者啥奖励之类的....如果不可以的话那就算了....)

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


漏洞回应

厂商回应:

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

忽略时间:2013-12-18 16:43

厂商回复:

最新状态:

2013-12-19:不好意思,确认晚了。已修复。