LFI – Come individuare e proteggersi dalla vulnerabilità Local File Inclusion Part.1

Analizzando pagine web dinamiche di vari siti o ad esempio dei CMS (Wordpress, Drupal, Joomla) è possibile notare come gli sviluppatori ottimizzino il codice distribuendolo su più pagine.

In questo modo i programmatori evitano di creare file (ad esempio php) troppo grandi e di conseguenza meno chiari/flessibili.

Per incorporare il contenuto di una pagina php dentro l’altra, vengono utilizzate le funzioni:

include(‘pagina2.php’);

include_once(‘pagina2.php’);

require(‘pagina2.php’);

require_once(‘pagina2.php’);

Cosa può accadere se il nome della pagine inclusa viene richiamata col metodo GET o POST senza l’inserimento di adeguati filtri?

La risposta è semplice: è possibile leggere file di sistema o scaricare il codice sorgente degli applicativi, questa vulnerabilità viene chiamata LFI Local File Inclusion.

E’ importante precisare due punti per il corretto rilevamento della vulnerabilità:

I files a cui avrà accesso la pagina affetta dal bug, devono avere almeno i permessi in lettura per l’utente Apache (o l’utente di riferimento del demone http)
Il sistemista del web server non ha circoscritto l’area di lavoro dell’applicativo