Какие есть уязвимости при прямом подключении файлов?

Q_BASIC

Хранитель порядка
Регистрация
30 Ноя 2013
Сообщения
516
Реакции
1.240
Доброе время суток :)

Какие есть уязвимости при использовании такого кода?
Код:
if(file_exists(__DIR__.'/pages'.$_SERVER['REQUEST_URI']))
    echo file_get_contents(__DIR__.'/pages'.$_SERVER['REQUEST_URI']);
else
    show_404();
 
Можно загрузить и отобразить на экране браузера любой файл вашего сайта.
Т.е. узнать содержимое конфига сайта, какие-то скрытые от чужих глаз файлы, слить сайт.
Если у вас ВПС или Сервер и нет ограничения досутпа на папку для апач юзера, то можно получить вообще любой файл сервера. А дальше узнать все пароли...

p.s. Нужно фильтровать содержимое переменной $_SERVER['REQUEST_URI'], удалять из нее лишние символы.
 
Можно загрузить и отобразить на экране браузера любой файл вашего сайта.
Т.е. узнать содержимое конфига сайта, какие-то скрытые от чужих глаз файлы, слить сайт.
Если у вас ВПС или Сервер и нет ограничения досутпа на папку для апач юзера, то можно получить вообще любой файл сервера. А дальше узнать все пароли...

p.s. Нужно фильтровать содержимое переменной $_SERVER['REQUEST_URI'], удалять из нее лишние символы.
Можно по подробнее?

Задумано же, то что файлы в папке pages. Какой должен быть $_SERVER['REQUEST_URI'] чтобы получить файлы вне папки pages? И какие символы надо отфильтровывать?
 
echo file_get_contents(__DIR__.'/pages/../file.txt');
Как-то так. Получает путь до __DIR__.'/pages/ . Далее ../ - перейти на 1 уровень выше, можно на два. Тогда .../.../ и т.д.
Далее указываем название файла, который загрузить.

p.s. Взлом чужих сайтов преследуется...
 
Последнее редактирование:
Назад
Сверху