LFI - Local file include

Критическая уязвимость кода сайта. Максимальный уровень угрозы.

LFI - это подключение, выполнение или чтение локальных файлов на сервере

LFI (Local file include) является максимальной угрозой класса А1 по классификации OWASP


LFI - Local file include - это популярный и часто эксплуатируемый способ взлома сайтов и веб приложений.

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

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

LFI - позволяет злоумышленнику выполнить или получить данные с локального файла.
LFI возникает в случае, когда проверка входящих данных и параметров в коде сайта отсутствует или недостаточна.

Возможность эксплуатации LFI (Remote file include) возникает из за грубейших ошибок разработки сайта, отсутствия фильтрации передающих параметров, а также некорректной настройки сервера.

Пример уязвимого LFI (Local file include) PHP скрипта:

Файл http://vulnserver.com/vuln.php
<?
$filename = (string)@$_GET['filename'];
$filename .= '.txt';
if (file_exists($filename)) {
echo htmlspecialchars(file_get_contents($filename)); }
else {
echo "Error!"; }
?>

Вызов скрипта:
http://vulnserver.com/
vuln.php?filename=../../../etc/passwd%00

или,как пример:

http://vulnserver.com/vuln.php?filename=config.php%00
(таким образом, не так давно, массово взламывались сайты на WordPress через уязвимость в одном популярном плагине)

Результат:
Атакующий получает конфиденциальные данные с системных и конфигурационных файлов

Векторов эксплуатации и развития LFI атак множество. В большинстве случаев дело заканчивается взломом сайта.
Нередко такой взлом сайта остается незамеченным для администратора ресурса (если целью взлома не был дефейс или уничтожение сайта).

Уязвимость LFI (Local file include) на сайте - это максимальная угроза для его безопасности.


Защита от LFI (Local file include)

Фильтрация параметров, передающих данные.
Фильтрация или экранирование нулевого байта (%00).
Проверка валидности запросов, серверного пути. В PHP использование суперглобального массива $_SERVER.



Сканер уязвимостей сайтов онлайн Проверьте, наколько устойчив к взлому Ваш сайт