Jump to content
Sim Master

Vulnerabilitatile uploadarii fisierelor

Recommended Posts

Posted

Frumos articol. Eu cred ca e putin cam neprofesional sa restrictionezi anumite tipuri de fisiere mai ales daca ai un serviciu de file-sharing. Parerea mea e ca cele mai bune metode de a te proteja este ori sa salvezi fisierele cu un nume random si salvarea numelui original intr-o baza de date, dar totusi e posibil sa se poata descarca direct daca se afla calea catre fisier. Sau si mai sigur ar fi sa le salvezi intr-un folder inafara folderului root al sitului + filtrarea numelui ca sa nu se ajunga ca in primul caz cu nume de genul "../../index.php", iar apoi downloadul se face printr-un script php.

Posted (edited)

In ziua de astazi se verifica si extensia fisierului, nu doar tipul trimis de utilizator, cel putin asa este cel mai bine.

Si metoda asta este de cand lumea, si se poate si mai simplu face asa ceva, cu Mozilla Firefox si pluginul Tamper Data si cu un script php redenumit in script.jpg, script.gif, script.orice.

Procedura: Intri cu Firefox pe site-ul dorit, dai Cotrobaie, alegi fisierul script.gif, si inainte sa dai pe butonul ce trimite formularul te duci la Tools -> Tamer Data, apesi pe Start Tamper sus in dreapta, te muti inapoi in fereastra de Firefox, apesi pe butonul ce trimite formularul, Firefox va fi oprit iar tu vei fi intrebat daca datele trimise sa treaca prin plugin, sau sa continue, fereastra care te va intreba va avea parca 3 butoane si un checkbox, lasi electat checkbox-ul acela cu Continue Tampering, si apesi Stamper, se va deschide o alta fereastra unde vei avea header-ul si datele trimise, te uiti pe acolo, cauti script.gif si cand gasesti inlocuiesti din .gif in .php, dai OK, dai Submit la celelalte intrebari daca sa treaca prin plugin datele sau nu, si pagina se va incarca, iar fisierul va fi urcat cu extensia .php, Daca nu ati inteles cereti si am sa va fac un tutorial cu poze :3

Edited by BogdanNBV
  • Downvote 1
Posted
Ce idiot ar configura Apache sa interpreteze .jpg ca .php?

Codul PHP(Shell-ul) este inserat in comment-ul imaginii. Deoarece daca respectivul cod PHP ar fi inserat direct in imagine, headerul ar fi corupt, lucru ce va face ca uploadarea sa esueze. Punand codul in comment-ul imaginii va face ca interpretatorul PHP sa vada acel executabil PHP.

Posted (edited)

eu am inteles care-i treaba, dar interpretorul va executa codul din imagine doar daca-i instruit in sensul asta. ce idiot ar da eval() la continutul unei imagini?

PS:


if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg')

un fisier nu poate fi si GIF si JPEG in acelasi timp.

Edited by dumblegate
Posted
eu am inteles care-i treaba, dar interpretorul va executa codul din imagine doar daca-i instruit in sensul asta. ce idiot ar da eval() la continutul unei imagini?

PS:


if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg')

un fisier nu poate fi si GIF si JPEG in acelasi timp.

Mai pe scurt, nu stii sa citesti..:

Atacatorul poate executa cu succes un shell php daca a incarcat cu succes un fisier numit ".htaccess", ce contine o linie de cod similara cu asta:

Code: AddType application/x-httpd-php .jpg

Linia de mai sus instruieste web serverul Apache sa execute imaginile jpg in cazul in care acestea au fost scripturi PHP. Atacatorul poate acum sa incarce un fisier cu o extensie jpg, ce contine cod PHP.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...