Используя RFI, злоумышленник делает так, что веб-приложение запускает удалённый файл. Это возможно для веб-приложений, которые динамически посылаются на внешние файлы или сценарии. Потенциальные последствия для веб-безопасности от успешной RFI-атаки варьируются от раскрытия конфиденциальной информации и внедрение вредоносных ссылок через межсайтовый скрипт (XSS) до удалённого выполнения кода и, в итоге, полной компрометации системы.

Атаки на удалённую загрузку файлов обычно происходят, когда приложение получает путь к файлу в качестве входных данных для веб-страницы и неправильно очищает его. Это позволяет предоставлять внешний URL-адрес для функции включения.

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

Используя приведённый выше PHP-скрипт, злоумышленник может выполнить следующий HTTP-запрос, чтобы заставить приложение запустить вредоносный код на стороне сервера, например, бэкдор или веб-оболочку.

В этом примере вредоносный файл включён и запускается с разрешения пользователя сервера, который запускает веб-приложение. Это позволяет злоумышленнику запускать любой код на веб-сервере. Они могут даже добиться постоянного присутствие на веб-сервере.

Поиск и предотвращение RFI-уязвимостей

К счастью, легко проверить, уязвим ли ваш веб-сайт или веб-приложение к RFI и другим уязвимостям, таким как SQL-инъекция и другие, запустив автоматическое веб-сканирование с помощью сканера уязвимостей Acunetix.

Если вы обнаружите уязвимости RFI, лучший способ их устранения — никогда не включать файлы, основанные на пользовательском вводе. Если это невозможно, приложение должно поддерживать белый список файлов, которые могут быть включены. Проверка ввода является гораздо менее эффективным методом в этом случае, потому что злоумышленники могут обойти его, используя хитрые приёмы.

Кроме того, в случае PHP-приложений большинство текущих установок настраиваются с параметром allow_url_include, отключённым в php.ini. Это делает невозможным для злоумышленников включать удалённые файлы. Однако, в таком случае локальное включение файлов (LFI) все ещё возможно.

Материал взят с данного источника.