A PHP csapata nem rég adta ki a futtatókörnyezet 5.3.9-es verzióját, melyben a híres-neves hash ütközéses támadásra adtak megoldást, a max_input_vars konfigurációs direktíva bevezetésével. Ahogy a név is mutatja, ez az érték szabályozza, hogy maximum hány paramétert lehet átadni egy szkriptnek GET illetve POST paraméterben, az alapértelmezett érték 1000.
Az új beállításhoz tartozó feldolgozó kód azonban nem sikerült hibátlanra. Ha az átadott paraméterek száma meghaladja az engedélyezettet, az utolsó paraméter pedig egy tömb, a tömb támadó által megadott értéke referenciaként közvetlenül felhasználásra kerül, kódfuttatásra adva ezzel lehetőséget. Magyarul egy DoS sebezhetőséget sikerült távoli kódfuttatássá alakítani, szép munka! :)
PoC itt látható, a PHP 5.3.10 letölthető a php.net-ről.
synapse · http://www.synsecblog.com 2012.02.03. 12:59:30
domi007 2012.02.03. 14:20:14
conscience 2012.02.11. 18:09:24
buherator · http://buhera.blog.hu 2012.02.11. 18:35:31
7 for (var i = 0; i < 1001; i++) {
Ha igen, olvass commit logot. JS-ben amúgy elég érdekes off-by-one-ról beszélni.
conscience 2012.02.11. 19:04:40
buherator · http://buhera.blog.hu 2012.02.12. 01:13:10