LFI или как открывать произвольный файл на сервере

LFI или как открывать произвольный файл на сервере

@Torchik_Ru

Показывать это на боевых сайтах я не буду, потому что, как минимум это незаконно, а возьмем для эксперимента DVWA. Итак, начнем:

Нулевая фильтрация

Зайдем на DVWA и выбираем соответственно уязвимость File Inclusion:

У этой страницы ссылка выглядит так:

Вот тут-то и есть наша уязвимость, откуда мы можем обращаться к серверу и читать его файлы. А ведь требовалась элементарная фильтрация, чтобы этого не допустить. Итак, для этого нам нужно указать путь к файлу. Такой вариант LFI уязвимости считается самым базовым.

Для демонстрации, в корневой папке я создал копию главной страницы и изменил его заголовок. И в запросе вместо передачи параметру page нашего файла, я передал ему файл, который находится в корневой папке. А так как мы находимся во вложенных папках, чтобы выйти из них указываем ../ что значит, на 1 папку выше и после указываем сам файл. И в итоге получаем содержимое файл. Обычно при проверке LFI уязвимости ссылаются на passwd, который расположена /etc/passwd.

И чтобы было понятно, что же это такое «нулевая фильтрация», на примере кода:

$file = $_GET['page'];

Base64 или php filter

Бывают случаи, когда мы не можем прочитать содержимое файла из-за определенных мер безопасности и в этом случае нам поможет PHP функция, и мы получим какую-то закодированную строку.

Строка это, как вы уже поняли в base64 расшифровав его, мы получим содержимое файла:

Этот LFI в реальности редко сейчас можно встретить. Но она достаточно часто используется в CTF соревнованиях.

Поиск LFI может производится двумя способами:

  • Автоматический
  • Ручной

Автоматический я делаю с помощью spider в BurpSuite. Может потом эту тему тоже рассмотрим.

И ручной, тут, когда находим что-то типа .php?page=home, пытаемся изменить значение параметра, если успешно выполняется, то аллелуя.

С помощью дорков можно найти, возможно, уязвимые объекты:

inurl:.php?main=*php
inurl:.php?file=
inurl:.php?inc=*php
inurl:.php?pg=*php
inurl:.php?include_file=*php
inurl:.php?main=*html
inurl:.php?inc=*html
inurl:.php?pg=*html
inurl:.php?id=
inurl:.php?action=
inurl:.php?content=
inurl:.php?page=

[Источник]

Report Page