CSRF
Cross-Side Request Forgery
Técnicas de evasión
Clickjacking
La explotación de clickjacking en el mismo endpoint evita toda la protección CSRF.
Para probarlo usar el siguiente html cambiando la URL de la etiqueta iframe:
Cambiar el método de la solicitud
Por ejemplo, esta solicitud:
Puede reescribirse como:
Protección CSRF a través de tokens
El hecho de que un sitio utilice tokens CSRF no significa que los esté validando correctamente.
Elimina el parámetro de token o envía un token en blanco
Por ejemplo, si una solicitud legítima se ve así:
Prueba esto:
o esto:
Utilice el token CSRF de otra sesión
Es posible que la aplicación solo verifique si el token es válido o no, y no verifica si pertenece al usuario actual . Si ese es el caso, simplemente puede codificar su propio token CSRF en la carga útil. Digamos que el token de la víctima es 871caef0757a4ac9691aceb9aad8b65b , y el tuyo es YOUR_TOKEN. Puede obtener su propio token CSRF fácilmente, pero no el token de la víctima. Intente eludir la protección CSRF proporcionando su propio token en lugar del token legítimo.
Protección CSRF a través de Referer
Digamos que attacker.com es un dominio de su propiedad. Y bank.com es el sitio que está atacando. El sitio no utiliza tokens CSRF, sino que está comprobando el encabezado del remitente. que puedes hacer ahora?
Eliminar el encabezado del referidor
De manera similar a enviar un token en blanco, a veces todo lo que necesita hacer para omitir una verificación de referencia es simplemente no enviar una referencia. Para hacer esto, puede agregar la siguiente metaetiqueta a la página que aloja su carga útil:
Es posible que la aplicación solo esté validando el remitente si se envía uno, en ese caso, ¡ha omitido con éxito su protección CSRF!
Omitir la expresión regular
Si la verificación de referencia se basa en una lista blanca, puede intentar omitir la expresión regular utilizada para validar la URL. Por ejemplo, puede intentar colocar el nombre de dominio de la víctima en la URL de referencia como subdominio o como directorio.
Si el sitio está buscando “ bank.com” en la URL árbitro, tal vez “ bank.com.attacker.com” o “ attacker.com/bank.com” va a funcionar.
Last updated