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
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.
¿Te resultó útil este artículo?