Pogledajte određenu poruku
Staro 27. 08. 2006.   #1
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default Zend_Hash_Del_Key_Or_Index Vulnerability

Ne znam da li ste vec culi za ovo, ali nije zgoreg da se pomene:

http://www.hardened-php.net/hphp/zen...erability.html


Ukratko: U PHP-u se svi nizovi interno drze kao hash tabele, a onda zavisno od toga da li je index elementa numericki ili neki string, elementu niza se pristupa ili preko indexa kao kod klasicnih nizova (za numericki index) ili tako sto se racuna hash funkcija, i tako dobijenim hash kljucem nalazi odgovarajuci bucket (za string indexe).
Problem nastaje u funkciji koja brise element iz hashtabele (izmedju ostalog recimo php funkcija unset() ) jer ona uvek prvo proba da obrise element koristeci numericki index, pa tek ako ga ne nadje onda pokusa da brise koristeci hash kljuc... odnosno ako postoje 2 elementa gde je numericki index jednog jednak hash kljucu drugog elementa, bice uvek obrisan onaj sa numerickim indexom.

Ovo omogucava da se napadne sistem tako sto ce se spreciti unset-ovanje nekih promenjivih. Naprosto treba izracunati hash kljuc neke promenjive i onda podmetnuti varijablu sa tom (numerickom) vrednoscu indexa, i onda ce biti obrisana umesto originalne. Naravno ovo je opasno samo kod sistema sa register_globals=ON, jer premoscava uobicajenu zastitu pomocu unsetovanja bitnih varijabli.
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat