problemas con CSRF

Iniciado por lol46, 9 Septiembre 2009, 17:37 PM

0 Miembros y 2 Visitantes están viendo este tema.

lol46

Estoy haciendo pruebas en mi servidor para intentar explotar un CSRF pero no consigo hacerlo.
El escenario es el siguiente:
-Tengo un panel de admin en el que te logueas y se crea una sesion.
-Hay un php para borrar usuarios que se llama del_usuarios.php y se le pasa una id para borrar dicho usuario. En este php se valida la sesion pero no hay ningun token ni nada para evitar un CSRF.

Bien, sabiendo eso he creado un html sencillo con un <img src='dominio1/del_usuarios.php?id=xx'> y lo he colgado en otro dominio diferente.

Estoy logeado como admin en el dominio1, me voy al dominio2 donde esta mi html con CSRF, y al hacer la peticion a del_usuarios.php con una id me dice que no tengo permisos.. vaya que la cookie de la sesion no se pasa!

Alguien ve lo que estoy haciendo mal?

tomrian

Sniffea las peticiones y fijate si los datos de la cookie de la sesión son enviados en el segundo caso (cuando explotas el CSRF).

lol46

Ahora empiezo a entenderlo..
La petición que se hace al cargar la <img src='dominio1/del_usuarios.php?id=xx'> se hace sin la cookie de session y por lo tanto no se elimina el usuario por falta de session.

Ahora la pregunta es.. controlando la session ya se vuelve invulnerable a CSRF??? No hace falta que cree un token de seguridad para defender mis paginas?


lol46

#3
Ostias ahora ya se que pasaba!!!

No se propagan las sessiones entre subdominios!!

Me habia logueado en www.dominio1.com/ y para el ataque estaba apuntando a dominio1.com/ (sin las www) Aparentemente devuelven la misma pagina, pero no comparten las sessiones!

Ahora mi <img src=''> ya apunta bien y veo que la pagina es vulnerable 100% a CSRF.
Toca tokenizar las url para defender un poco jeje  ;D ;D


tomrian

El traspaso de los datos de las cookies depende siempre del browser. Seguramente lo que pasaba era que la cookie estaba guardada para www.dominio1.com y no para dominio1.com.

Saludos