[T00ls]DEDECMS 0DAY

简介:

无聊之中想出来的0DAY (反正最后能拿下WEBSHELL都叫0DAY把)
但前提要求条件比较苛刻 看完就明白
经典对白 看代码

member\index_do.php 

else if($fmdo=='login')

//   [url]http://127.0.0.1/member/index_do.php?fmdo=login&dopost=login[/url]
就来到这步了
{
        //用户登录
        if($dopost=="login")
        {
                if(!isset($vdcode))
                {
                        $vdcode = '';
                }
                $svali = GetCkVdValue();
                if(preg_match("/2/",$safe_gdopen)){
                        if(strtolower($vdcode)!=$svali || $svali=='')
                        {
                                ResetVdValue();
                                ShowMsg('验证码错误!', '-1');
                                exit();
                        }
                        
                }
                if(CheckUserID($userid,'',false)!='ok')
                {
                        ShowMsg("你输入的用户名 {$userid} 不合法!","-1");
                        exit();
                }
                if($pwd=='')
                {
                        ShowMsg("密码不能为空!","-1",0,2000);
                        exit();
                }
 
                //检查帐号
                $rs = $cfg_ml->CheckUser($userid,$pwd);                
                 //检测用户名密码  这里不会出现提示错误  因为还要运行下面代码
                #api{{
                if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
                {
                    //苛刻条件之一  已经整合DZ 并安装了UCCLIENT这个插件
                        //检查帐号
                        list($uid, $username, $password, $email) = uc_user_login($userid, $pwd);
//登录DEDECMS的同时也登录DZ
                        if($uid > 0) {
                                $password = md5($password);
                                //当UC存在用户,而CMS不存在时,就注册一个        
                                if(!$rs) {   //如果DEDECMS登录不成功
                                        //会员的默认金币
                                        $row = $dsql->GetOne("SELECT `money`,`scores` FROM `#@__arcrank` WHERE `rank`='10' ");
                                        $scores = is_array($row) ? $row['scores'] : 0;
                                        $money = is_array($row) ? $row['money'] : 0;
                                        $logintime = $jointime = time();
                                        $loginip = $joinip = GetIP();
                                        $res = $dsql->ExecuteNoneQuery("INSERT INTO #@__member SET `mtype`='个人',`userid`='$username',`pwd`='$password',`uname`='$username',`sex`='男' ,`rank`='10',`money`='$money', `email`='$email', `scores`='$scores', `matt`='0', `face`='',`safequestion`='0',`safeanswer`='', `jointime`='$jointime',`joinip`='$joinip',`logintime`='$logintime',`loginip`='$loginip';");
 
//漏洞就这样形成了  当DZ的用户全在的话 就会建立到DEDECMS里  
经测试 只有密码替换!


简单来说 登录DEDECMS验证就是
如果DEDE账号登录成功 就同时登录DZ 如果DZ登录不成功 就在DZ建立一个一样账号密码的
反之 登录DEDECMS不成功 就在DZ里提取账号 登录成功了就把账号密码写入DEDECMS

利用前提条件 
第一 整合DZ
第二 管理员账号不能是ADMIN 因为DZ管理员默认也是ADMIN
第三 DEDE那边管理员没从前台登录。。和知道管理员账号

这样在DZ里注册一个和DEDE一样的管理员账号 然后从DEDE那里登录 就覆盖了DEDE的管理员密码
然后修改基本资料 改一次密码 就覆盖了后台密码 然后就可以登录后台直接拿WEBSHELL

总的来说  条件苛刻!  但也是有可能拿下WEBSHELL的方法之一











本文转hackfreer51CTO博客,原文链接: http://blog.51cto.com/pnig0s1992/484956 ,如需转载请自行联系原作者
相关文章
使用qemu来dump虚拟机的内存,然后用crash来分析
使用qemu来dump虚拟机的内存,然后用crash来分析
|
Linux 测试技术 API
Ollama+Qwen2,轻松搭建支持函数调用的聊天系统
本文介绍如何通过Ollama结合Qwen2,搭建OpenAI格式的聊天API,并与外部函数结合来拓展模型的更多功能。
|
人工智能
本地离线部署大模型知识库OLLAMA+Anything(保姆级)
本地离线部署大模型知识库OLLAMA+Anything(保姆级)
5561 3
|
机器学习/深度学习 JSON 自然语言处理
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
579 1
|
边缘计算 物联网 5G
4G 网络跟 5G 的区别
4G 网络跟 5G 的区别
933 0
《逻辑与计算机设计基础(原书第5版)》——2.7 门的传播延迟
本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第2章,第2.7节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
4387 1
|
网络协议 程序员 API
[笔记] Microsoft Windows网络编程《一》WinSock简介(二)
[笔记] Microsoft Windows网络编程《一》WinSock简介(二)
325 0
|
安全 开发工具 Android开发
Android上传图片到七牛云看这篇就够了
Android上传图片到七牛云看这篇就够了
|
机器人 数据安全/隐私保护 Python
Cobalt Strike的多种上线提醒方法(上)
Cobalt Strike的多种上线提醒方法
810 0
|
缓存 网络协议 Java
Freeline - Android平台上的秒级编译方案
Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想, 并对代码及资源编译流程做了深入的性能优化。
92772 0

热门文章

最新文章