Estoy haciendo una prueba de penetración en una aplicación web y estoy usando window.history.back()
para volver a la anterior. página. ¿Es seguro usarlo?
Por ejemplo, si visito google.com y luego voy a la aplicación web y presiono Atrás, me presentaría google.com nuevamente. De manera similar, si un atacante pudiera de alguna manera simular esto en un iframe (si eso se almacena en el historial de la ventana) o si el usuario visita la URL (pero eso sería inútil) o posiblemente alterar algún tipo de mecanismo de almacenamiento en caché. ¿Qué formas reales? ¿Hay para explotar esto?
¿Es un problema real o estoy pensando demasiado?
Responder
Puedes leer sobre windows.history sitio web de Mozilla . Explica brevemente que history.back () no es diferente a hacer clic en el botón Atrás en tu navegador. Creo que estás pensando demasiado en windows.history.back, ¡pero no en el objeto window.history en sí! .
Si te explico en detalle, estaría fuera del tema, sin embargo, puedo afirmar en breve que los métodos window.history.pushState () o window.history.replaceState () son más dignos de preocupación. La manipulación del historial del navegador es posible. También puede compruébalo en:
Manipular el historial del navegador
Responder
Si una página tiene un enlace que window.history.back()
, puede estar abierto a ataques que abusen de la confianza que un usuario deposita en los enlaces dentro de la aplicación web. Es posible una forma de redireccionamiento abierto. Cuando un usuario visita el sitio de un atacante que redirige a la aplicación web, el vínculo de retroceso terminará en el sitio del atacante, que puede presentar una página de phishing.
Por lo tanto, el usuario puede confiar en que todos Los vínculos dentro de la aplicación son confiables, mientras que un vínculo puede terminar en otro sitio. Un ataque de phishing real sería difícil, ya que la víctima primero debe visitar el sitio del atacante, estar convencida de que está visitando la aplicación web confiable y hacer clic en el botón Atrás sin darse cuenta de que está abandonando la aplicación confiable.
Comentarios
- Pensamiento interesante. Supongo que un escenario válido sería algo así como páginas de ayuda con un ' volver ' enlace en la parte inferior o algo así. El atacante podría enlazar de forma segura a esas páginas porque el usuario simplemente volverá al sitio ' del atacante. Si el usuario comprueba el dominio mientras está en la página de ayuda, todo se comprobará. Pero estas páginas son raras (especialmente con un diseño web más moderno) y el riesgo parece muy, muy bajo.