Використовуючи RFI, зловмисник робить так, що веб-додаток запускає віддалений файл. Це можливо для веб-додатків, які динамічно посилаються на зовнішні файли або сценарії. Потенційні наслідки для веб-безпеки від успішної RFI-атаки варіюються від розкриття конфіденційної інформації і запуску шкідливих посилань через міжсайтовий скрипт (XSS) до віддаленого виконання коду і, в підсумку, повної компрометації системи.

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

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

Використовуючи наведений вище PHP-скрипт, зловмисник може виконати наступний HTTP-запит, щоб змусити додаток запустити шкідливий код на стороні сервера, наприклад, бекдор або веб-оболонку.

У цьому прикладі шкідливий файл включений і запускається з дозволу користувача сервера, який запускає веб-додаток. Це дозволяє зловмисникові запускати будь-який код на веб-сервері. Вони можуть навіть домогтися постійної присутності на веб-сервері.

Пошук і запобігання RFI-вразливостей

На щастя, легко перевірити, вразливий ваш веб-сайт або веб-додаток до RFI і іншим вразливостям, таким як SQL-ін’єкція і інші, запустивши автоматичне веб-сканування за допомогою сканера вразливостей Acunetix.

Якщо ви виявите RFI-вразливості, кращий спосіб їх усунення – ніколи не включати файли, засновані на призначеному для користувача введенні. Якщо це неможливо, додаток повинен підтримувати білий список файлів, які можуть бути включені. Перевірка введення є набагато менш ефективним методом в цьому випадку, тому що зловмисники можуть обійти його, використовуючи хитрі прийоми.

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

Дані взяті з даного джерела