首页 - 神途资讯 > DeDeCMS v5.7 SP2 正式版 前台任意用户密码修改 漏洞复现(包括环境搭建)

DeDeCMS v5.7 SP2 正式版 前台任意用户密码修改 漏洞复现(包括环境搭建)

发布于:2024-11-11 作者:admin 阅读:96

​ 该版本环境为php5.6+mysql

2利用搭建网站并安装

将源码内容复制,并在的网站根目录下创建新文件夹,将源码内容复制进去:

​ 点击创建网站,域名为127.0.0.1,端口除了80随意设置,按照以下进行设置:

确认并重启网络服务,网站就搭建好了,下面打开网站进入安装界面:

点击继续

数据库密码是在里的数据库密码,一般是root,管理员就按照默认设置账户和密码:

这时点击继续会出现以下界面,应该是一些安全配置没有设置好

打开源码目录下D:\\WWW\\,找到.class.php和.class.php两个php文件,用++打开,然后ctrl+F寻找,把TURE改为FALSE,关闭安全检查

保存之后,刷新界面安装完成,环境搭建完毕

三、漏洞复现

1.漏洞原因及触发位置

由于前台.php中对接受的参数类型比较不够严格,遭受弱类型比较攻击

导致了远程攻击者可以在前台会员中心绕过验证,进行任意用户密码重置攻击

漏洞触发位置://.php(75行)

else if($ == “”)

$mid = ("#[^0-9]#", “”, $id);

KaTeX parse error: 'EOF', got '#' at 57: …rid,email FROM #̲@ WHERE…mid’";

$row = db−>(db->(db−>(sql);

if(empty($)) $ = ‘’;

if(empty($)) $ = ‘’;

if($row[‘’] == $ && $row[‘’] ==

$)

​ sn($mid, $row[‘’], $row[‘email’], ‘N’);

​ exit();

else

​ (“对不起,您的安全问题或答案回答错误”,"-1");

​ exit();

就是这里的判断出现了问题,因为使用了不够严谨的 == 进行了比较,导致if语句的条件为真,就会进入分支,进入sn函数

if($row[‘’] == $ && $row[‘’] ==

$)

sn($mid, $row[‘’], $row[‘email’], ‘N’);

exit();

2.复现过程

打开会员功能,并创建一个测试账号test:

test 初始密码1234,不要设置安全问题,这个漏洞的基础就是没有安全问题

管理后台查询test的uid为2,为接下来的复现做准备

打开burp进行抓包,在网站URL上输入请求:

:9090//.php?=&=0.0&=&id=2

burp抓包发现临时验证码

:9090//.php?=&id=2&key=

Key= 为临时验证码,记住这个验证码

然后在URL输入:

:9090//.php?=&id=2

burp放包 跳转进入修改密码界面

输入刚才抓包获得验证码,修改test用户的新密码为

修改成功

尝试用新密码登录

成功登录

漏洞复现完毕

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,请告知我们,本站将立刻删除涉嫌侵权内容。

相关文章