
Una piattaforma interattiva per l'addestramento XSS self-hosted con 33 sfide progressivamente più difficili
💸 Se questo progetto ti aiuta, considera di supportarlo con una donazione di $10 per farlo crescere. Link: https://rzp.io/rzp/zgkC6h5B
Una piattaforma interattiva e auto-ospitata per l'addestramento su XSS con 33 sfide progressivamente più difficili — progettata per hacker, pentester e sviluppatori che vogliono padroneggiare il cross-site scripting dai fondamentali allo sfruttamento nel mondo reale.
⚡ Costruito per attaccanti
⚡ Progettato per l'apprendimento
⚡ Ingegnerizzato per la semplicità
33 sfide XSS progressive dalla riflessione di base allo sfruttamento avanzato nel mondo reale.
| # | Nome | Descrizione |
|---|---|---|
| 1 | Hello, Reflected XSS | Nessun filtro, nessuna codifica. Il tuo input viene riflesso direttamente nella pagina. |
| 2 | Stored XSS Guestbook | Il tuo input viene memorizzato e reso visibile a tutti i visitatori. Classico XSS persistente. |
git clone https://github.com/The-Cyber-Ledger/TCL-xss-labs.git
cd TCL-xss-labs
npm install
npm start
Apri: http://localhost:3000
Esegui tutti i 33 lab all'istante con un solo comando:
docker pull shadowpacket/tcl-xss-labs
docker run -p 3000:3000 shadowpacket/tcl-xss-labs
Apri: http://localhost:3000
Trigger alert() O eseguire uno sfruttamento realistico (esfiltrazione dati, takeover admin, ecc.)Questo progetto è un ambiente di addestramento intenzionalmente vulnerabile. Utilizzalo solo in ambienti locali o controllati. NON colpire sistemi senza autorizzazione. Solo per scopi educativi.
La maggior parte delle persone impara XSS risolvendo lab. Questo progetto ti aiuta a capire lo sfruttamento come un vero attaccante.
| # | Nome | Descrizione |
|---|
| 3 | Script Tag Blocked | Il server rimuove i tag <script>. Trova un altro modo per eseguire JavaScript. |
| 4 | Attribute Injection | Il tuo input finisce all'interno di un attributo HTML. Esci ed esegui codice. |
| 5 | JavaScript Context | Il tuo input viene inserito all'interno di una variabile stringa JavaScript. Escpa e inietta. |
| 28 | Markdown Injection | Un renderer Markdown ingenuo converte il tuo post in HTML. Fallo eseguire JavaScript. |
| 32 | Filename Injection | Carica un file. Il nome del file viene riflesso nell'interfaccia senza sanificazione. |
| # | Nome | Descrizione |
|---|
| 6 | Event Handler Blocklist | I gestori di eventi comuni sono bloccati. Trovane uno oscuro che il filtro ha perso. |
| 7 | Case & Keyword Filter | Filtro aggressivo a passaggio singolo. Usa parole chiave nidificate per ricostruirle dopo la rimozione. |
| 8 | DOM-Based XSS | La vulnerabilità esiste interamente nel JavaScript lato client che legge dall'URL. |
| 25 | Open Redirect → XSS | Combina un reindirizzamento aperto con un tag meta-refresh per ottenere XSS. |
| 27 | localStorage DOM XSS | I dati memorizzati in localStorage vengono renderizzati al ricaricamento senza sanificazione. |
| # | Nome | Descrizione |
|---|
| 9 | href Injection with Filters | L'input finisce in un anchor href con più filtri applicati. |
| 10 | CSP Bypass via JSONP | Bypassa la Content Security Policy usando un endpoint JSONP same-origin. |
| 11 | Double Encoding Bypass | Sfrutta il comportamento di doppia decodifica tra WAF e applicazione. |
| 12 | Client-Side Template Injection | Il template engine valuta {{expressions}} usando eval. |
| 13 | postMessage XSS | Sfrutta la messaggistica cross-window insicura senza validazione dell'origine. |
| 14 | SVG Upload XSS | Carica file SVG ed esegui payload usando funzionalità specifiche di SVG. |
| 15 | Mutation XSS | Bypassa la sanificazione usando il comportamento di mutazione del DOM del browser. |
| 16 | Recursive Keyword Filter | Il filtro itera ricorsivamente — usa contesti di esecuzione alternativi. |
| 17 | The Polyglot | Il payload deve eseguire in contesti HTML, attributo e JS. |
| 18 | DOM Clobbering | Sovrascrivi variabili globali usando elementi HTML appositamente creati. |
| 19 | Prototype Pollution → XSS | Inquina la catena dei prototipi per ottenere XSS senza iniezione HTML diretta. |
| 20 | Base Tag Injection | Inietta <base> per manipolare il caricamento delle risorse e bypassare CSP. |
| 21 | Dangling Markup Injection | Esfiltra dati sensibili usando solo iniezione HTML (nessun JS). |
| 22 | JSON Injection in Script Block | Escapa dal contesto JSON all'interno di un blocco script con nonce. |
| 23 | URL Scheme Bypass | Bypassa i filtri che bloccano javascript: usando trucchi di codifica. |
| 24 | CSS Injection Exfiltration | Usa CSS per estrarre dati sensibili senza JavaScript. |
| 26 | CRLF → Response Splitting | Inietta header per dividere la risposta HTTP e iniettare HTML. |
| 29 | iframe Sandbox Escape | Escapa da configurazioni sandbox iframe insicure. |
| 30 | AngularJS Sandbox Escape | Sfrutta tecniche di bypass della sandbox delle espressioni AngularJS. |
| 31 | Web Component Slot Injection | Inietta nel Shadow DOM tramite rendering basato su slot. |
| 33 | Blind XSS (Out-of-Band) | Attiva l'esecuzione del payload in un pannello admin non visibile. |