¿Se podría considerar una CSRF una solicitud enviada por un ataque XSS en un módulo de cambio de contraseña?

2

Mi compañero estaba probando una aplicación web y encontró una vulnerabilidad XSS en un módulo de cambio de contraseña, este módulo coloca la contraseña antigua en un campo oculto, entonces es posible usar un ataque XSS para cambiar la contraseña de un usuario, porque La antigua contraseña puede ser obtenida por XSS exploit. Además, este módulo no utiliza un token o CAPTCHA para garantizar que una solicitud sea válida, entonces mi pregunta es: ¿podría considerarse esta vulnerabilidad como CSRF? ¿Por qué?

No estoy seguro porque si mitigo la vulnerabilidad de XSS y cambio el campo de campo oculto por el de texto para garantizar que los usuarios introduzcan su contraseña anterior, no se podrá explotar un CSRF. Mi compañero me dijo que podría considerarse un CSRF porque, aunque no conocemos la contraseña anterior, la aplicación web no usa un token o CAPTCHA, por lo que podemos cambiar una contraseña utilizando brute force y esto es un tipo de CSRF. ¿Esto es correcto?

    
pregunta hmrojas.p 17.03.2017 - 23:57
fuente

1 respuesta

3

No lo clasificaría como CSRF.

El mecanismo de protección que está fallando aquí es la protección XSS, no la protección CSRF; Si no hubiera una vulnerabilidad XSS, no podría realizar un ataque CSRF. Es cierto que todas las vulnerabilidades de XSS pueden ser explotadas para eludir todas las protecciones CSRF que no están basadas en desafío-respuesta (contraseñas, captchas, etc.), pero eso no significa que todas las vulnerabilidades de XSS deben clasificarse como CSRF.

Tampoco hay una vulnerabilidad CSRF clásica por separado aquí. Aunque no hay protección de token, el formulario está protegido de CSRF a través de un mecanismo de desafío-respuesta ya que se requiere una contraseña. Sin embargo, su socio tiene un punto con respecto al escenario de fuerza bruta a través de CSRF. Lo consideraría una vulnerabilidad si no hay protección de fuerza bruta para el formulario, y sugeriría agregar cualquier protección CSRF. Utilizado en los otros módulos. Sin embargo, lo clasificaría como una vulnerabilidad de fuerza bruta (a través de CSRF).

Aparte de eso, el hecho de que la contraseña se muestre es una vulnerabilidad en sí misma, al igual que el hecho de que las contraseñas se almacenan aparentemente en texto sin formato; Sin embargo, primero debe comprobar que la contraseña la proporciona realmente la aplicación, no el navegador o un administrador de contraseñas basado en complementos.

    
respondido por el tim 18.03.2017 - 00:08
fuente

Lea otras preguntas en las etiquetas