Показать сообщение отдельно

  #1  
Старый 20.03.2013, 11:12
coolspot
Новичок
Регистрация: 20.02.2011
Сообщений: 6
Провел на форуме:
1821

Репутация: 0
По умолчанию

Привет!

Есть форум с IPB 3.3.0 , всё у этого форма прекрасно, даже CVE-2012-2226 не пропатчена, PHP версии 5.2.17 , который позволяет null-byte poisoning, и даже в корне сайта лежит волшебный файл /phpinfo.php

Уязвимость позволяет сделать require_once произольного .php файла в системе, и эта часть работает.

Но в описании уязвимости основной акцент делается на то, что её можно использовать совместно с null-byte poisoning для того чтобы сделать инклюд не .php файла, а файла с любым расширением, например закачанный в uploads джипег. И эта часть у меня не получается.

Более того, мне кажется автор эксплоита чего-то напутал и она в принципе не должна получаться.

В эксплоите даны куски кода, где анализируется как работает баг. Параметр key распаковывают base64:

Код:
$key = trim( IPSText::base64_decode_urlSafe( $this->request['key'] ) );
Потом его разпиливают на кусочки:

Код:
list( $app, $area, $relId, $likeMemberId, $memberId, $email ) = explode( ';', $key );
Потом один из кусочков ($area) без проверок и очисток принимает участие в формировании пути к файлу:

Код:
$_file = IPSLib::getAppDir( $app ) . '/extensions/like/' . $area . '.php';
Чтобы заюзать null-byte poisoning надо чтобы $area было равно target_file_name.txt , но $key, из которого получается $area проходит через trim() который NULL оттуда вырезает.

Таким образом, в $area ну никак не может оказаться NULL.

Вопросы:

1. Что имел ввиду автор эксплоита?

2. Как раскрутить LFI во что-то полезное, когда он инклудит только .php ?
 
Ответить с цитированием