Cross-site scripting (XSS)
En esta sección veremos todo lo relacionado con la vulnerabilidad cross site scripting (ataque de sitios cruzados), como se explota, como funciona, como se sanitiza, y los 33 laboratorios de portswigg
Last updated
En esta sección veremos todo lo relacionado con la vulnerabilidad cross site scripting (ataque de sitios cruzados), como se explota, como funciona, como se sanitiza, y los 33 laboratorios de portswigg
Last updated
Son una vulnerabilidad de seguridad web que permite a un atacante comprometer las interacciones que los usuarios tienen con una aplicación vulnerable, las vulnerabilidades XSS permiten a un atacante hacerse pasar por un usuario victima para llevar a cabo cualquier acción que el usuario pueda realizar accediendo a cualquiera de sus datos, si el usuario victima tiene acceso privilegiado por ende el atacante lo tendrá también si se lleva a cabo con exito el ataque XSS, de esta forma el ataque por XSS vendría siendo peligroso si se puede llevar con exito.
Una secuencia de comando basicamente funciona manipulando un sitio web vulnerable para que devuelva código javascript malicioso a los usuarios victimas, cuando el codigo malicioso JS se ejecuta dentro del navegador del usuario victima el atacante puede comprometer su interacción completamente con la aplicación.
Puede confirmar la mayoría de los tipos de vulnerabilidad XSS inyectando una carga útil que haga que su propio navegador ejecute algún JavaScript arbitrario. Durante mucho tiempo ha sido una práctica común utilizar la alert()
función para este propósito porque es corta, inofensiva y bastante difícil de pasar por alto cuando se llama con éxito. De hecho, la mayoría de nuestras prácticas de laboratorio XSS se resuelven invocando alert()
en el navegador de una víctima simulada.
¿La solución? Usar la función Print() que es la que nos permite poder imprimir una pagina, en este caso podemos llevar a cabo el mismo procedimiento de un alert() inofensivo pero con un print().
Hay 3 tipos de XSS, estos son:
XSS Reflejado: Donde el script malicioso proviene de la solicitud HTTP actual.
XSS Almacenado: Donde el script malicioso proviene de la base de datos del sitio web.
XSS Basado en DOM: Donde la vulnerabilidad existe en el código del lado del cliente en lugar del codigo del lado del servidor, manipulando el Document Object Model (DOM) de la página.
¿Qué es el DOM? -> Document Object Model (DOM) es una interfaz de programación de aplicaciones que permite leer, acceder y modificar el frontend del código fuente de una página web. El DOM sirve para representar documentos XML y HTML en una estructura de árbol, orientada en definir la jerarquía de los objetos que componen a un sitio web.
Desafortunadamente, hay un pequeño problema si usas Chrome. A partir de la versión 92 (20 de julio de 2021), se impide que los iframes de origen cruzado llamen a alert()
. Como se utilizan para construir algunos de los ataques XSS más avanzados, en ocasiones necesitarás utilizar una carga útil PoC alternativa. En este escenario, recomendamos la print()
función. Si está interesado en obtener más información sobre este cambio y por qué nos gusta print()
, sobre el tema.