漏洞复现

DeDeCMS v5.7 SP2 正式版 前台任意用户密码修改漏洞复现

(一)漏洞简介

织梦内容管理系统(DedeCms)以简单、实用、开源而闻名,是国内最知名的 PHP 开源网站管理系统,也是使用用户最多的 PHP 类 CMS 系统,在经历多年的发展,目前的版本无论在功能,还是在易用性方面,都有了长足的发展和进步,DedeCms 免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用该系统。
2018 年 1 月 10 日, 锦行信息安全公众号公开了一个关于 DeDeCMS前台任意用户密码修改漏洞的细节。
2018 年 1 月 10 日,Seebug 漏洞平台收录该漏洞,漏洞编号为 SSV-97074,知道创宇 404 漏洞应急团队成功复现该漏洞

(二) 漏洞限制

1、 只影响前台账户
2、 只能修改未设置安全问题的账户

(三)复现过程

1.搭建网站

使用DeDeCMSV5.7SP2 正式版(2018-01-09) 与phpstudy pro

漏洞复现

漏洞复现

2.相关配置与准备

查看管理员账号密码
漏洞复现
登录管理员后台
漏洞复现
在系统设置中开启会员功能
漏洞复现
注册会员账号,并不设置安全问题
漏洞复现

3.使用burpsuite抓包,并根据链接修改会员用户的密码

首先需要我们下载burpsuite,并为浏览器设置好代理
漏洞复现
现在我们开启代理并构造漏洞利用请求:首先登录上我们的攻击方的账号,再将URL中member后的内容改为resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id={uesr} (我这里的id是2)
漏洞复现
发送该请求后在burpsuite我们可以看到如下界面:
漏洞复现
然后我们点击放包,将会在burpsuite中看到:GET /uploads/member/resetpassword.php?dopost=getpasswd&id=2&key=YYSAkAOs,现在将该语句中的所有的amp;删除掉后再点击放包按钮即可跳转到修改密码界面:
漏洞复现
修改密码后,重新登录该账号:
漏洞复现

(四)漏洞修复方法

1.在注册时设置安全问题

漏洞复现

2.网站管理人员可以通过修改漏洞位置的判断条件来临时防御该漏洞。 修改文件/member/resetpassword.php 第 84 行, 将其中的 == 修改为 ===.

如图第4账号并未设置安全问题,更改代码后,管理员无法使用漏洞更改第4账号的密码。
漏洞复现
漏洞复现
漏洞复现
漏洞复现