All your buckets are belong to us: DOSeando PHP a través de arrays asociativos

Hace unas horas andaba yo pasando el rato por /r/programming cuando me encontré con un post sobre la posibilidad y las consecuencias de forzar externamente colisiones dentro de los arrays asociativos de PHP, es algo tan... ¿abrumador? que hay que probarlo para ver el peligro que representa, veamoslo.

Nota: El día 28 de este mes hubo en el 28C3 una charla que tiene mucho, ¡todo! que ver con esto, es muy recomendable hecharle un vistazo, enormemente interesante.

El peligro se agrava por una combinación de varios factores que PHP agrupa:

  • Se puede adivinar de forma trivial el hash de un entero, el mismo.

  • Hay algunos arrays donde el usuario tiene continue.

All your buckets are belong to us: DOSeando PHP a través dos arrays asociativos

Fai unhas horas andaba eu pasando o rato por /r/programming cando topei cun post sobre a posibilidade e as consecuencias de forzar externamente colisións dentro dos arrays asociativos de PHP, é algo tan... ¿abrumador? que hay que probalo para ver o perigo que representa, vexámolo.

Nota: O día 28 de este mes houbo no 28C3 unha charla que ten moito, todo! que ver con isto, é moi recomendable botarlle unha ollada, enormemente interesante.

O perigo agravase por unha combinación de varios factores que PHP agrupa:

  • Pódese adiviñar de forma trivial o hash dun enteiro, el mesmo.

  • Hay algúns arrays onde o usuario ten total poder para crear o seu continue.

All your buckets are belong to us: DOSsing PHP through associative arrays

Some hours ago I was reading /r/pro­gram­ming when I found a post about the posibility and con­se­cuences of externally forcing colisions inside the as­so­cia­tive arrays in PHP, it's something so... ¿over­whelm­ing? you have to try it to see the danger it represents, let's go.

Note: The day 28 of this month took a place a_lecture which has a lot, everything! in relation with this in 28C3, it's very in­ter­est­ing.

The danger gets worse because a com­bi­na­tion of factors which PHP groups:

  • The hash of an integer can be trivially guessed, the number itself.

  • There are some arrays the user can create at will: $_GET, $_POST y $_COOKIE.

Now imagine continue.