一、漏洞概述
1、简介
织梦内容管理系统(DedeCms) [1] 以简单、实用、开源而闻名,是国内最知名的 PHP 开源网站管理系统,也是使用用户最多的 PHP 类 CMS 系统,在经历多年的发展,目前的版本无论在功能,还是在易用性方面,都有了长足的发展和进步,DedeCms 免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用该系统。 2018 年 1 月 10 日, 锦行信息安全公众号公开了一个关于 DeDeCMS前台任意用户密码修改漏洞的细节。 2018 年 1 月 10 日,Seebug 漏洞平台[3]收录该漏洞,漏洞编号为SSV-97074,知道创宇 404 漏洞应急团队成功复现该漏洞。2、漏洞限制
(1)只影响前台账户 (2) 只能修改未设置安全问题的账户3、影响版本
DeDeCMSV5.7SP2 正式版(2018-01-09)二、环境搭建
1、复现环境
PHP 5.6 DeDeCMSV5.7SP2 正式版(2018-01-09)2、网站搭建
(1)下载phpstudy并搭建一个网站,下载源码,下载完成后解压到phpstudy的www目录下
(2)浏览器访问ip/DedeCMS/uploads/install/index.php(IP为搭建的网站的ip),安装dedecms
(3)安装完成后访问后台打开会员功能
三、漏洞复现
1、创建一个新用户,用户名为aaa,密码是aaa123,不要设置安全问题,而且用户名不小于3位
2、查看创建用户名的id
3、构造请求
http://127.0.0.1/DedeCMS/uploads/member/resetpassword.php
dopost=safequestion&safequestion=0.0&safeanswer=&id=3
4、burp抓包拦截,然后放包后得到一个链接
5、将链接中的“amp;”删除后直接访问该链接,将密码修改为asd123
6、用修改后的密码登陆成功
四、漏洞影响范围
通过 ZoomEye 网络空间探测引擎进行探测,以下为网络空间上所有的使用了 DeDeCMS 的网站,总数超过 43 万条。
五、防护方案
1、官方修复方案截至漏洞简报完成时,DeDecms 官方还未推出修复补丁。
2、临时修复方案
网站管理人员可以通过修改漏洞位置的判断条件来临时防御该漏洞。 漏洞修复:将弱比较改为强比较,将文件/member/resetpassword.php的第84行中的“==”改为“===”