
Une plateforme de formation XSS interactive et auto-hébergée avec 33 défis de plus en plus difficiles
💸 Si ce projet vous aide, pensez à le soutenir avec un don de 10 $ pour qu'il continue de grandir. Lien : https://rzp.io/rzp/zgkC6h5B
Une plateforme interactive et auto-hébergée d’entraînement aux XSS avec 33 défis de difficulté croissante — conçue pour les hackers, pentesters et développeurs qui souhaitent maîtriser le cross‑site scripting, des fondamentaux jusqu’à l’exploitation réelle.
⚡ Conçu pour les attaquants
⚡ Pensé pour l’apprentissage
⚡ Optimisé pour la simplicité
33 défis XSS progressifs, du reflet basique à l’exploitation avancée dans le monde réel.
| # | Nom | Description |
|---|---|---|
| 1 | Bonjour, XSS réfléchie | Aucun filtre, aucun encodage. Votre entrée est reflétée directement dans la page. |
| 2 | Livre d’or XSS stockée | Votre entrée est stockée et affichée pour tous les visiteurs. XSS persistante classique. |
| # | Nom | Description |
|---|---|---|
| 3 | Balise script bloquée | Le serveur supprime les balises <script>. Trouvez un autre moyen d’exécuter du JavaScript. |
| 4 | Injection d’attribut | Votre entrée atterrit dans un attribut HTML. Échappez‑vous et exécutez du code. |
| 5 | Contexte JavaScript | Votre entrée est placée dans une variable chaîne JavaScript. Échappez et injectez. |
| 28 | Injection Markdown | Un renderer Markdown naïf convertit votre post en HTML. Faites‑lui exécuter du JavaScript. |
| 32 | Injection de nom de fichier | Téléchargez un fichier. Son nom est reflété dans l’interface sans assainissement. |
| # | Nom | Description |
|---|---|---|
| 6 | Liste noire de gestionnaires d’événements | Les gestionnaires d’événements courants sont bloqués. Trouvez-en un obscur que le filtre a oublié. |
| 7 | Filtre de casse et de mots‑clés | Filtre agressif à passage unique. Utilisez des mots‑clés imbriqués pour les reconstruire après suppression. |
| 8 | XSS basée sur le DOM | La vulnérabilité réside entièrement dans le JavaScript côté client lisant l’URL. |
| 25 | Redirection ouverte → XSS | Enchaînez une redirection ouverte avec une balise meta‑refresh pour réaliser une XSS. |
| 27 | XSS DOM via localStorage | Les données stockées dans localStorage sont affichées au rechargement sans assainissement. |
| # | Nom | Description |
|---|---|---|
| 9 | Injection href avec filtres | L’entrée va dans un href d’ancre avec plusieurs filtres appliqués. |
| 10 | Contournement CSP via JSONP | Contournez la Content Security Policy en utilisant un point de terminaison JSONP de même origine. |
| 11 | Contournement par double encodage | Exploitez le comportement de double décodage entre le WAF et l’application. |
| 12 | Injection de template côté client | Le moteur de template évalue {{expressions}} via eval. |
| 13 | XSS via postMessage | Exploitez une messagerie inter‑fenêtres non sécurisée sans validation d’origine. |
| 14 | XSS par téléchargement SVG | Téléchargez des fichiers SVG et exécutez des payloads en utilisant des fonctionnalités propres au SVG. |
| 15 | XSS par mutation | Contournez l’assainissement en exploitant le comportement de mutation du DOM du navigateur. |
| 16 | Filtre récursif de mots‑clés | Le filtre boucle de manière récursive — utilisez des contextes d’exécution alternatifs. |
| 17 | Le polyglotte | Le payload doit s’exécuter dans les contextes HTML, attribut et JS. |
| 18 | DOM Clobbering | Écrasez des variables globales avec des éléments HTML fabriqués. |
| 19 | Pollution de prototype → XSS | Polluez la chaîne de prototypes pour réaliser une XSS sans injection HTML directe. |
| 20 | Injection de balise base | Injectez <base> pour manipuler le chargement des ressources et contourner la CSP. |
| 21 | Injection de balise pendante | Exfiltrez des données sensibles en utilisant uniquement une injection HTML (sans JS). |
| 22 | Injection JSON dans un bloc script | Échappez‑vous du contexte JSON à l’intérieur d’un bloc script noncé. |
| 23 | Contournement de schéma d’URL | Contournez les filtres bloquant javascript: en utilisant des astuces d’encodage. |
| 24 | Exfiltration par injection CSS | Utilisez le CSS pour extraire des données sensibles sans JavaScript. |
| 26 | CRLF → Fractionnement de réponse | Injectez des en‑têtes pour fractionner la réponse HTTP et injecter du HTML. |
| 29 | Échappement de bac à sable iframe | Échappez‑vous de configurations non sécurisées du bac à sable d’une iframe. |
| 30 | Échappement du bac à sable AngularJS | Exploitez les techniques de contournement du bac à sable d’expressions AngularJS. |
| 31 | Injection de slot dans un composant web | Injectez dans le Shadow DOM via un rendu basé sur des slots. |
| 33 | XSS aveugle (hors bande) | Déclenchez l’exécution d’un payload dans un panneau d’administration invisible. |
git clone https://github.com/The-Cyber-Ledger/TCL-xss-labs.git
cd TCL-xss-labs
npm install
npm start
Ouvrir : http://localhost:3000
Lancez les 33 laboratoires instantanément avec une seule commande :
docker pull shadowpacket/tcl-xss-labs
docker run -p 3000:3000 shadowpacket/tcl-xss-labs
Ouvrir : http://localhost:3000
Trigger alert() Ou réaliser une exploitation réaliste (exfiltration de données, prise de contrôle admin, etc.)