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库中包含的任意脚本代码。
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库中包含的任意脚本代码。