Como parte de mi puesto en la empresa con la que estoy empleado, realizo una prueba de penetración manual en nuestra aplicación web (aún en desarrollo) para detectar vulnerabilidades. Durante las pruebas, intenté ver si nuestra aplicación web era vulnerable a CSRF. Para ello, ejecuté la aplicación en la pestaña A y me autentiqué con la aplicación web. En la pestaña B, abrí la consola de JavaScript y corrí:
window.location.replace("http://privilegedLocationInWebApp.com");
La redirección se realizó correctamente, dirigiendo la pestaña B a una página autenticada dentro de la aplicación web.
Más tarde en el día en casa, decidí jugar y ver qué otros sitios son vulnerables a esto, ya que me parece que es algo que probablemente se pasa por alto con frecuencia y probar que no cause daño a la página web (es decir, no estoy intentando A SQL inyectarlos o hacerles cualquier daño). El intento de una redirección de este tipo en una pestaña no autenticada con una pestaña separada ya autenticada tuvo éxito en varios sitios, algunos parecen ser demasiado importantes para permitir tal vulnerabilidad.
¿Esto es realmente una vulnerabilidad CSRF? ¿O esto es simplemente pasado por alto por los propietarios de sitios web y aplicaciones web, ya que estas solicitudes son todas solicitudes GET pero un intento de hacer un POST puede ser rechazado ya que simbolizaría una verdadera vulnerabilidad CSRF?