Post60 nn %281%29

Historia


En las veces que he utilizado alguna herramienta automatizada para detectar vulnerabilidades, encuentro en un 70 % vulnerabilidades de Cross Site Request Forgery (CSRF). Pero la primera pregunta que se nos viene a la cabeza es ¿Que es CSRF? CSRF o Falsificación de Peticiones en Sitios Cruzados es una vulnerabilidad que explota la confianza del usuario. Convencionalmente el CSRF utiliza a un usuario validado para a través de este introducir solicitudes "válidas" que modifiquen el comportamiento de la aplicación a favor del atacante.

En palabras simples, el atacante usa a la víctima para que sea ella misma la que realice la transacción dañina cuando la víctima se encuentra validada en el servidor y en la aplicación específica. El proceso es simple, muchos usuarios no finalizan correctamente (o no pueden hacerlo) sus sesiones en las aplicaciones bancarias o de otra índole que puedan ser afectadas por esta vulnerabilidad y las mantienen activas mientras navegan otros sitios, más aún en tiempos en que las pestañas de los navegadores son muy utilizadas, por tanto desde cualquier otra ventana en el navegador se pudiera inducir al usuario a pulsar un enlace con una orden a sitios en los que el usuario ha ya autenticado, para que el usuario ejecute sin saberlo la acción de ataque.

A continuación realizaremos una Prueba de Concepto sobre dicha vulnerabilidad.


Vulnerabilidad CSRF– Escenario de Pruebas


Acá tenemos un escenario muy común en sitios webs, podemos ver que en el sitio web estamos trabajando el usuario admin, por lo tanto podemos asumir que estamos dentro de una sesión, además nos encontramos en el recurso necesario para poder cambiar la contraseña. El problema de este recurso es que se solicita cambiar la contraseña pero no se solicita la contraseña anterior para poder cambiar la contraseña. Automáticamente podemos deducir que se trata de una vulnerabilidad CSRF. Ya que un atacante con cualquier otro usuario podría capturar esta trama, enviarla a la víctima y de esta manera hacer que cambie su contraseña.

Ahora iniciaremos en la máquina atacante abriremos una sesión con un usuario malicioso para poder capturar la trama y enviársela a la víctima. Utilizaremos Burp Suite para poder capturar dicha trama.


Vulnerabilidad CSRF– Cuenta del Atacante


Ahora con Burp Suite capturaremos la trama del recurso “Cambiar Contraseña” para generar un documento HTML con las variables de la sesión POST y de esta manera poder enviárselo a la víctima.


Vulnerabilidad CSRF– Capturando la Trama del POST

Aquí tenemos la trama del POST de “Cambiar Contraseña”, (esto lo hacemos con la cuenta del atacante para poder obtener la trama) ahora crearemos un archivo HTML con una estructura con los datos capturados anteriormente. Crearemos un archivo llamado archivo.php el cual tendrá la trama del POST.


archivo.php

<html>
<body onload= "document.test.submit()">
<form action=" http://192.168.206.130/proyecto/vulnerabilities/csrf/change.php" name="test" method="POST">
<input type="hidden" name="password_new" value="test" />
<input type="hidden" name="password_conf" value="test" />
<input type="hidden" name="Change" value="Change" />
 
</form>
</body>
</html>


Este archivo contiene todos los parámetros del POST. A continuación crearemos un archivo llamado imagen.php, el cual tendrá una imagen, la cual será enviada a la víctima, pero en realidad lo que hará el archivo por detrás, será llamar a archivo.php y de esta manera hacer que la víctima cambie su contraseña sin que se dé cuenta por la que nosotros definimos.


imagen.php


<html>
<body>
<iframe src="http://www.vulnweb.com/updateif.php" style="display:none"></iframe>
<img src="http://cdn.memegenerator.es/imagenes/memes/full/0/5/56863.jpg">
</body>
</html>

Luego de que creamos estos dos archivos, lo que debemos hacer es subirlo a nuestro servidor web atacante, en este caso a la dirección 192.168.206.128.


Luego una vez hecho esto, le enviamos el link a la víctima (http://192.168.206.128/imagen.php). Cabe mencionar que para que esto funcione SIEMPRE será necesario que la víctima tenga su sesión abierta, en caso contrario esto no funcionará.


Una vez enviado esto la victima abrirá el link y le aparecerá lo siguiente:


Vulnerabilidad CSRF– Victima abriendo el link con CSRF


Al abrir esto, la victima solo verá la imagen, pero por detrás se logró realizar el cambio de contraseña de su cuenta. Finalmente  la victima iniciar la sesión ahora con la cuenta respectiva.


Vulnerabilidad CSRF–  Probando Credenciales Con Password Cambiada


Vulnerabilidad CSRF–  Inicio de Sesión Exitoso.


Lo otro que hay que considerar para explotar la vulnerabilidad, es que debemos conocer el nombre de usuario de la víctima.



Artículos que te pueden interesar