viernes, 26 de agosto de 2011

Insecure Cookie Handling




Saludos!

El manejo de las cookies de forma insegura es algo muchisimo más común de lo que se piensa. Cuando hablo de "manejo inseguro" me refiero tanto a que las cookies pueden contener una información sensible en sí misma, o que las aplicaciones web utilizan las cookies sin tomar en cuenta aspectos básicos de seguridad.

El caso más conocido por todos es el de las cookies predecibles, como lo son Admin=1, usr=admin, User=1, etc. Normalmente las aplicaciones vulnerables suelen contar con un checkeo de la cookie bastante rudimentario basado en una simple comparación tipo:
if ( isset($_COOKIE['id']) && $_COOKIE['id'] == 1 )


Suponiendo que ese código fuese la comprobación de seguridad para acceder al panel de administración, podemos ver que podría bypassearse creando una cookie llamada id y de valor 1. En otros casos no es tan fácil de darse cuenta de que es un manejo inseguro porque el valor de la cookie está "camuflado"

En estos casos lo que requiere la explotación es tener imaginación y hacer pruebas hasta encontrar un patrón:


...
$cookie = $usuario . rand(0,10);
$cookie = base64_encode($cookie);
...


En este caso la cookie aparecería en base64 y además variaría por los números random generados, pero como podemos darnos cuenta hay muy poca entropía, por lo que sería fácil dar con una cookie existente y usurpar a un usuario.


Pero este fallo de seguridad no sólo puede utilizarse para escalar privilegios sino que también puede aparecer en otros sitios, como tiendas online, por poner un ejemplo, donde el precio de los productos adquiridos queden almacenados en la cookie y después use esos datos para realizar la factura (puede sonar rocambolesco pero os aseguro que por ahí ví el reporte de una vulnerabilidad similar).

Para realizar un ataque de fuerza bruta con atributos y valores de cookies well-known y tratar de escalar de esta forma privilegios Seth codeó una herramienta en JavaScript para GreasyMonkey que podeis ver aquí: CHPMEGAC00KIEH4X . Actualmente si quereis echar una mano con su proyecto podeis mandarle más pares atributo/valor de cookies para que las añada al diccionario.
5 0verl0ad Labs: Insecure Cookie Handling Saludos! El manejo de las cookies de forma insegura es algo muchisimo más común de lo que se piensa. Cuando hablo de "manejo...
< >