Привет, хакеры, сегодня мы научимся использовать LFI уязвимость для получения контроля над сайтом. Поехали!
Local File Inclusion - Захвати сервер.
Что такое Local File Inclusion?
LFI - это возможность использования и выполнения локальных файлов на серверной стороне. Уязвимость позволяет удаленному пользователю получить доступ с помощью специально сформированного запроса к произвольным файлам на сервере, в том числе содержащую конфиденциальную информацию.
Проще говоря, это уязвимость открытия файлов с сервера + недостаточная фильтрация, что позволяет открывать произвольный файл.
Как найти уязвимость?
Используя гугл.
Дорк для поиска уязвимости выглядит примерно таким образом:
Проверим возможность уязвимости. Для этого меняем URL таким образом:
Выше приведена попытка отобразить содержимое файла / etc / passwd в системе на основе UNIX / Linux. Соответственно мы пробуем пробиться на сервак.
Получаем полный доступ к серверу. Превращаем уязвимость LFI в Code Execution.
Если есть форма загрузки файла, и можно загружать php-файлы - или обходить проверки безопасности имени файла - тогда можете включить загруженный файл с помощью уязвимости LFI, если вы знаете путь до загруженных файлов. Давайте посмотрим на пример.
Мы создаем файл с именем exploit.php . Содержимое файла - обычный php скрипт
Если путь файла не указывается, мы должны попытаться перебрать путь брутом или использовать стандартные каталоги, используемые популярными CMS движками.
LFI-атаки не ограничивают наши возможности только чтением файлов.
Если мы подумаем, мы умно сможем получить удаленную оболочку для уязвимого сервера.
Конечно, неправильно настроенный сервер - то есть, неправильные права доступа к файлу - всегда помогут нам достичь этой цели.
Если вы не можете получить доступ к серверу любым из предыдущих способов, вот совет:
С LFI вы можете просматривать содержимое любого файла PHP, который вы хотите. Вы можете сделать это, выполнив « php: //filter/read=convert.base64-encode/resource=FILETOREAD » после параметра файла в URL. Вот пример:
www.example.com/open.php?file= php: //filter/read=convert.base64-encode/resource=../../config.php
Здесь мы можем увидеть содержимое файла index.php.
Это вернет содержимое файла index.php вместо того, чтобы включать его, что аналогично его выполнению. Вывод будет в Base64 и, следовательно, вам нужно будет его декодировать.