Cross-Site Scripting (XSS) Reflejado: Mecánica e Impacto

Publicado el 2026-02-22

El Cross-Site Scripting (XSS) Reflejado ocurre cuando una aplicación recibe datos en una petición HTTP (generalmente parámetros GET o POST) e incluye esos datos en la respuesta inmediata de forma insegura, sin la validación o el escape adecuados.

Mecánica del Ataque

A diferencia del XSS Almacenado, el script malicioso no reside en la base de datos del servidor. El flujo es el siguiente:

  1. El atacante construye una URL maliciosa que contiene el payload de JavaScript.
  2. La víctima es engañada (Ingeniería Social) para hacer clic en el enlace.
  3. El servidor recibe la petición y "refleja" el payload en el HTML de respuesta.
  4. El navegador de la víctima ejecuta el script creyendo que es código legítimo del sitio (Same Origin Policy).

Contexto de Ejecución

En Cadel Academy, el parámetro q del buscador se renderiza dentro de una etiqueta <p>. Al usar el filtro | safe en Jinja2, se deshabilita el Context-Aware Output Encoding, permitiendo la inyección de etiquetas <script>.

Impacto en la Seguridad

Aunque no es persistente, el XSS Reflejado permite:

  • Robo de Sesión: Acceso a document.cookie.
  • Phishing Avanzado: Modificación del DOM para presentar formularios de login falsos.
  • Acciones en nombre del usuario: Realizar peticiones HTTP (CSRF) usando la sesión de la víctima.