Saltar al contenido principal

Cross-Site Scripting (XSS) - Tipos y prevención

Lectura de 2 min aprox.

El cross-site scripting (XSS: Cross-Site Scripting) es una técnica de ataque que inyecta scripts maliciosos en páginas web. El JavaScript implantado por el atacante se ejecuta en el navegador de la víctima, lo que provoca el robo de cookies, el secuestro de sesión, la redirección a páginas de phishing y más. En el OWASP Top 10 de 2024 ocupa una posición destacada como un tipo de ataque de inyección, y es una de las vulnerabilidades más comunes en las aplicaciones web.

Casos de uso reales

«Los valores introducidos en el formulario de contacto no se saneaban, y encontramos una vulnerabilidad de XSS almacenado. Al mostrar el contenido de la consulta en el panel de administración, el script se ejecutaba y la cookie de sesión del administrador se enviaba a un servidor externo.»

El flujo de un ataque XSS

Inyectar script malicioso
La víctima visita la página
El script se ejecuta en el navegador
Robo de cookies / sesión

Tipos de XSS

El XSS reflejado es un tipo en el que un script contenido en un parámetro de la URL se refleja directamente en la página. El XSS almacenado es un tipo en el que un script guardado en la base de datos se muestra a otros usuarios; los foros y las secciones de comentarios de las redes sociales suelen ser objetivos, y causa daños más graves. El XSS basado en DOM es un tipo que se origina en el procesamiento de JavaScript del lado del cliente y es difícil de detectar porque no pasa por el servidor.libros sobre XSS y seguridad web (Amazon) permiten aprender en profundidad.

Escenarios concretos de daño

Un error común es pensar que «el XSS es un ataque menor que solo cambia la apariencia». En realidad, son posibles ataques graves, como usar XSS almacenado para incrustar un script malicioso en la sección de reseñas de productos de un sitio de comercio electrónico y robar las cookies de sesión de todos los usuarios que vean la reseña. Con las cookies robadas, el atacante puede comprar productos con la cuenta de la víctima o cambiar su información registrada. También se han observado técnicas que lo combinan con el phishing para mostrar un formulario de inicio de sesión falso en un sitio legítimo.

Medidas como usuario

Lo básico es mantener el navegador actualizado y no hacer clic en enlaces sospechosos. Al usar una contraseña aleatoria única para cada servicio, puedes evitar que el daño se extienda a otros servicios aunque una sesión sea secuestrada mediante un ataque XSS. Restringir la ejecución de JavaScript con una extensión del navegador también es una medida eficaz.libros sobre seguridad del navegador (Amazon) también son referencias útiles.

Términos relacionados

¿Te resultó útil este artículo?

XHatena