¿Puede explotar una vulnerabilidad XSS en una página para ejecutar el código en otra página?

3

Digamos que la página A es vulnerable a XSS, pero no contiene nada de interés para un atacante. La página A enlaza con la página B que no es vulnerable a XSS, pero contiene un objetivo de alto valor para un atacante (como un formulario de inicio de sesión para robar contraseñas). Tanto la página A como la página B están en el mismo dominio.

¿Es posible explotar la vulnerabilidad de XSS en la página A para ejecutar el código en la página B cuando la víctima la visita, para que pueda robar la contraseña de la víctima cuando se ingrese en el formulario de registro?

Sospecho que jugar con marcos o iframes podría ser parte de la solución aquí, por lo que una pregunta de seguimiento natural es si es posible contener la vulnerabilidad XSS a la página A con la ayuda de la política de seguridad de contenido o algo similar.

    
pregunta Anders 09.05.2016 - 22:31
fuente

2 respuestas

5

El atacante podría agregar algún atributo de evento onclick en el enlace diferente de la página. Cuando el usuario haga clic en un enlace, pensará que tiene un error de desconexión simple, en lugar de eso, está cargando un evento con una página de conexión falsa. Pero, aún estás en el dominio e incluso puedes manipular la url con history.pushState(); como ejemplo.

    
respondido por el Xavier59 09.05.2016 - 22:56
fuente
0

1. Cambiar el enlace

Como lo sugiere AadvarkSoup en los comentarios, un atacante puede cambiar el atributo href del enlace en la página A, así que en lugar de la página B va a http://evil-pishin-site.com/login . La mayoría de los usuarios probablemente no notarán el cambio de dominio, ya que no esperan que cambie.

2. Simular página B

Como Xavier59 sugiere en su respuesta: cuando el usuario haga clic en el enlace a la página B, simplemente cambie la apariencia de la página A para que coincida con la apariencia de la página B, pero en realidad no siga el enlace a la página B.

3. Usa un iframe

Elimine todo el contenido de la página A y, en su lugar, rellénelo con un iframe con la página A en él. Dado que las páginas A y B son del mismo origen, el atacante podrá acceder a la página B en el iframe (después de que el usuario haga clic en el enlace) desde la página A que contiene el iframe.

Establecer el encabezado content-security-policy: frame-ancestors 'none' en la página B detendrá este enfoque, pero también evitará que lo cargues en un iframe por razones legítimas, si alguna vez quieres hacerlo.

Conclusión

Ya que solo no se puede proteger contra # 3, parece que no hay una buena manera de contener una vulnerabilidad XSS a la página vulnerable.

    
respondido por el Anders 11.05.2016 - 11:17
fuente

Lea otras preguntas en las etiquetas