首页 -> 安全研究

安全研究

安全漏洞
Prometheus应用程序架构远程文件包含漏洞

发布日期:2002-10-31
更新日期:2002-11-06

受影响系统:
Jason Orcutt Prometheus 6.0
Jason Orcutt Prometheus 4.0-beta
Jason Orcutt Prometheus 3.0-beta
描述:
BUGTRAQ  ID: 6087
CVE(CAN) ID: CVE-2002-1211

Prometheus是一款基于WEB的应用程序架构系统,由PHP编写。

Prometheus中的prometheus-library/all.lib代码中对用户提交的要装载的库路径缺少正确检查,远程攻击者可以利用这个漏洞装载包含其他服务器上的文件,导致文件中的PHP代码以WEB用户权限执行。

prometheus-library/all.lib中包含如下问题代码:

if ( ! isset( $PROMETHEUS_LIBRARY_BASE ) ||
$PROMETHEUS_LIBRARY_BASE == '') {
    $PROMETHEUS_LIBRARY_BASE = './prometheus-library';
}


if ( ! isset( $PHP_AUTO_LOAD_LIB ) ) {
    $PHP_AUTO_LOAD_LIB = 0;
}


if ( ! isset( $PROMETHEUS_LIB_PATH ) ) {
    $PROMETHEUS_LIB_PATH = 0;
}


if ( $PHP_AUTO_LOAD_LIB == 0 ) {
    include( $PROMETHEUS_LIBRARY_BASE . '/autoload.lib' );
}


if ( $PROMETHEUS_LIB_PATH == 0 ) {
    include( $PROMETHEUS_LIBRARY_BASE . '/prometheus-
lib.path' );
}

由于多个脚本(index.php,install.php,test_*.php)在包含all.lib时没有进行充分的过滤,通过设置PHP_AUTO_LOAD_LIB为"0"和PROMETHEUS_LIBRARY_BASE为攻击者控制服务器地址,攻击者可以迫使应用程序装载远程服务器上包含任意PHP代码的autoload.lib库,导致以WEB用户权限执行伪造autoload.lib库中包含的任意脚本代码。

<*来源:Karol Wiesek (appelast@bsquad.sm.pl
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=103616306403031&w=2
*>

建议:
临时解决方法:

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

* iDEFENSE提供如下第三方解决方案:

先搜索文件中危险的include()调用:

$ grep -n all.lib * -r | grep _BASE
index.php:23:include( $PROMETHEUS_APP_BASE .
'/prometheus-library/all.lib' );
scripts/view_theme.php3:6:include(
$PROMETHEUS_LIBRARY_BASE . '/all.lib' );

然后在调用include()前增加如下代码:

$PROMETHEUS_LIBRARY_BASE = './prometheus-library';

这可以防止攻击者设置PROMETHEUS_LIBRARY_BASE变量指向任意远程主机。

厂商补丁:

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

http://prometheus.zerodivide.net/

浏览次数:2677
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障