
Una plataforma interactiva de entrenamiento XSS auto-alojada con 33 desafíos progresivamente más difíciles
💸 Si este proyecto te ayuda, considera apoyarlo con una donación de $10 para que siga creciendo. Enlace: https://rzp.io/rzp/zgkC6h5B
Una plataforma interactiva y autoalojada de entrenamiento en XSS con 33 desafíos progresivamente más difíciles, diseñada para hackers, pentesters y desarrolladores que quieren dominar las secuencias de comandos entre sitios desde los fundamentos hasta la explotación en el mundo real.
⚡ Construido para atacantes
⚡ Diseñado para aprender
⚡ Ingeniado para la simplicidad
33 desafíos progresivos de XSS desde reflexión básica hasta explotación avanzada en el mundo real.
| # | Nombre | Descripción |
|---|
| 1 | Hola, XSS Reflejado | Sin filtros, sin codificación. Tu entrada se refleja directamente en la página. |
| 2 | XSS Almacenado en Libro de Visitas | Tu entrada se almacena y se renderiza para todos los visitantes. XSS persistente clásico. |
| # | Nombre | Descripción |
|---|---|---|
| 3 | Etiqueta Script Bloqueada | El servidor elimina las etiquetas <script>. Encuentra otra forma de ejecutar JavaScript. |
| 4 | Inyección en Atributo | Tu entrada se coloca dentro de un atributo HTML. Escapa y ejecuta código. |
| 5 | Contexto JavaScript | Tu entrada se coloca dentro de una variable de cadena JavaScript. Escapa e inyecta. |
| 28 | Inyección Markdown | Un renderizador Markdown ingenuo convierte tu publicación a HTML. Haz que ejecute JavaScript. |
| 32 | Inyección en Nombre de Archivo | Sube un archivo. El nombre de archivo se refleja en la interfaz sin saneamiento. |
| # | Nombre | Descripción |
|---|---|---|
| 6 | Lista de Manejadores de Eventos Bloqueados | Los manejadores de eventos comunes están bloqueados. Encuentra uno oscuro que el filtro pasó por alto. |
| 7 | Filtro de Mayúsculas y Palabras Clave | Filtro agresivo de una sola pasada. Usa palabras clave anidadas para reconstruirlas después de eliminar. |
| 8 | XSS Basado en DOM | La vulnerabilidad existe completamente en JavaScript del lado del cliente que lee desde la URL. |
| 25 | Redirección Abierta → XSS | Encadena una redirección abierta con una etiqueta meta-refresh para lograr XSS. |
| 27 | XSS DOM en localStorage | Los datos almacenados en localStorage se renderizan al recargar sin saneamiento. |
| # | Nombre | Descripción |
|---|---|---|
| 9 | Inyección href con Filtros | La entrada va a un ancla href con múltiples filtros aplicados. |
| 10 | Bypass CSP via JSONP | Eludir la Política de Seguridad de Contenido usando un endpoint JSONP del mismo origen. |
| 11 | Bypass de Doble Codificación | Explotar el comportamiento de doble decodificación entre WAF y aplicación. |
| 12 | Inyección de Plantillas del Lado del Cliente | El motor de plantillas evalúa {{expresiones}} usando eval. |
| 13 | XSS por postMessage | Explotar mensajería insegura entre ventanas sin validación de origen. |
| 14 | XSS por Subida de SVG | Subir archivos SVG y ejecutar payloads usando características específicas de SVG. |
| 15 | XSS por Mutación | Bypass de saneamiento usando el comportamiento de mutación del DOM del navegador. |
| 16 | Filtro de Palabras Clave Recursivo | El filtro itera recursivamente — usa contextos de ejecución alternativos. |
| 17 | El Políglota | El payload debe ejecutarse en contextos HTML, atributo y JS. |
| 18 | DOM Clobbering | Sobrescribir variables globales usando elementos HTML manipulados. |
| 19 | Contaminación de Prototipo → XSS | Contaminar la cadena de prototipos para lograr XSS sin inyección directa de HTML. |
| 20 | Inyección de Etiqueta Base | Inyectar <base> para manipular la carga de recursos y eludir CSP. |
| 21 | Inyección de Marcado Colgante | Exfiltrar datos sensibles usando solo inyección de HTML (sin JS). |
| 22 | Inyección JSON en Bloque de Script | Escapar del contexto JSON dentro de un bloque de script con nonce. |
| 23 | Bypass de Esquema de URL | Eludir filtros que bloquean javascript: usando trucos de codificación. |
| 24 | Exfiltración por Inyección CSS | Usar CSS para extraer datos sensibles sin JavaScript. |
| 26 | CRLF → División de Respuesta | Inyectar encabezados para dividir la respuesta HTTP e inyectar HTML. |
| 29 |
git clone https://github.com/The-Cyber-Ledger/TCL-xss-labs.git
cd TCL-xss-labs
npm install
npm start
Abre: http://localhost:3000
Ejecuta los 33 laboratorios al instante con un solo comando:
docker pull shadowpacket/tcl-xss-labs
docker run -p 3000:3000 shadowpacket/tcl-xss-labs
Abre: http://localhost:3000
Disparar alert() O realizar explotación realista (exfiltración de datos, toma de control de administrador, etc.)Este proyecto es un entorno de entrenamiento intencionalmente vulnerable. Úsalo solo en entornos locales o controlados. NO apuntes a sistemas sin autorización. Solo con fines educativos.
La mayoría de las personas aprenden XSS resolviendo laboratorios. Este proyecto te ayuda a entender la explotación como un atacante real.
| Escape de Sandbox de iframe |
| Escapar de configuraciones inseguras de sandbox de iframe. |
| 30 | Escape de Sandbox de AngularJS | Explotar técnicas de bypass del sandbox de expresiones de AngularJS. |
| 31 | Inyección en Slot de Componente Web | Inyectar en Shadow DOM a través de renderizado basado en slots. |
| 33 | XSS Ciego (Fuera de Banda) | Provocar la ejecución del payload en un panel de administración invisible. |