Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
TCL-xss-Labs — An interactive, self-hosted XSS training platform with 33 progressively harder challenges | Kitploit
Tools/GitHubGitHub/the-cyber-ledger/tcl-xss-labs
Vulnerability AnalysisWeb Application ExploitationWeb SecurityCTFPenetration TestingLearning & EducationLearning Paths & CoursesLabs & Practice
GitHubthe-cyber-ledger/tcl-xss-labs

TCL-xss-Labs

An interactive, self-hosted XSS training platform with 33 progressively harder challenges

View Repository
165 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

XSS Lab — The Cyber Ledger

💸 If this project helps you, consider supporting it with a $10 donation to keep it growing. Link: https://rzp.io/rzp/zgkC6h5B

An interactive, self-hosted XSS training platform with 33 progressively harder challenges — designed for hackers, pentesters, and developers who want to master cross-site scripting from fundamentals to real-world exploitation.

⚡ Built for attackers
⚡ Designed for learning
⚡ Engineered for simplicity

  • Single Node.js server
  • No database required
  • No build step
  • Fully Dockerized for one-command deployment

Challenges

33 progressive XSS challenges from basic reflection to advanced real-world exploitation.


🟢 Easy

#NameDescription
1Hello, Reflected XSSNo filters, no encoding. Your input is reflected directly into the page.
2Stored XSS GuestbookYour input is stored and rendered for all visitors. Classic persistent XSS.

🟡 Medium

#NameDescription
3Script Tag BlockedThe server strips <script> tags. Find another way to execute JavaScript.
4Attribute InjectionYour input lands inside an HTML attribute. Break out and execute code.
5JavaScript ContextYour input is placed inside a JavaScript string variable. Escape and inject.
28Markdown InjectionA naive Markdown renderer converts your post to HTML. Make it execute JavaScript.
32Filename InjectionUpload a file. The filename is reflected in the UI without sanitization.

🔴 Hard

#NameDescription
6Event Handler BlocklistCommon event handlers are blocked. Find an obscure one the filter missed.
7Case & Keyword FilterAggressive single-pass filter. Use nested keywords to reconstruct them after stripping.
8DOM-Based XSSVulnerability exists entirely in client-side JavaScript reading from the URL.
25Open Redirect → XSSChain an open redirect with a meta-refresh tag to achieve XSS.
27localStorage DOM XSSData stored in localStorage is rendered on reload without sanitization.

⚫ Expert

#NameDescription
9href Injection with FiltersInput goes into an anchor href with multiple filters applied.
10CSP Bypass via JSONPBypass Content Security Policy using a same-origin JSONP endpoint.
11Double Encoding BypassExploit double decoding behavior between WAF and application.
12Client-Side Template InjectionTemplate engine evaluates {{expressions}} using eval.
13postMessage XSSExploit insecure cross-window messaging without origin validation.
14SVG Upload XSSUpload SVG files and execute payloads using SVG-specific features.
15Mutation XSSBypass sanitization using browser DOM mutation behavior.
16Recursive Keyword FilterFilter loops recursively — use alternative execution contexts.
17The PolyglotPayload must execute across HTML, attribute, and JS contexts.
18DOM ClobberingOverwrite global variables using crafted HTML elements.
19Prototype Pollution → XSSPollute prototype chain to achieve XSS without direct HTML injection.
20Base Tag InjectionInject <base> to manipulate resource loading and bypass CSP.
21Dangling Markup InjectionExfiltrate sensitive data using only HTML injection (no JS).
22JSON Injection in Script BlockEscape JSON context inside a nonced script block.
23URL Scheme BypassBypass filters blocking javascript: using encoding tricks.
24CSS Injection ExfiltrationUse CSS to extract sensitive data without JavaScript.
26CRLF → Response SplittingInject headers to split HTTP response and inject HTML.
29iframe Sandbox EscapeEscape insecure iframe sandbox configurations.
30AngularJS Sandbox EscapeExploit AngularJS expression sandbox bypass techniques.

Getting Started (Local)

root@kitploit:~
git clone https://github.com/The-Cyber-Ledger/TCL-xss-labs.git
cd TCL-xss-labs
npm install
npm start

Open: http://localhost:3000

Run with Docker (Recommended)

Run all 33 labs instantly with one command:

root@kitploit:~
docker pull shadowpacket/tcl-xss-labs
docker run -p 3000:3000 shadowpacket/tcl-xss-labs

Open: http://localhost:3000

Features

  • Dashboard with progress tracking across all 33 levels
  • Hints for every level (base64-encoded to avoid spoilers)
  • Detailed writeups unlocked after solving each challenge
  • Cheat sheet with payloads, contexts, and defenses
  • Local progress saved in solutions.json
  • Reset system to restart anytime
  • Dockerized for zero-hassle deployment

How It Works

  • Each level simulates a vulnerable web application with flawed defenses. Your goal: Trigger alert() Or perform realistic exploitation (data exfiltration, admin takeover, etc.)

Learning Path

  • Levels 1–10 → Fundamentals (reflected, stored, DOM XSS)
  • Levels 11–20 → Filters, CSP, encoding bypass
  • Levels 21–30 → Advanced exploitation techniques
  • Levels 31–33 → Real-world attack simulations

Requirements

  • Node.js 18+ (for local setup)
  • Modern browser (Chrome recommended)
  • Docker (optional but recommended)

Disclaimer

This project is an intentionally vulnerable training environment. Use only in local or controlled environments Do NOT target systems without authorization For educational purposes only

Final Note

Most people learn XSS by solving labs. This project helps you understand exploitation like a real attacker.

Download Tool
31Web Component Slot InjectionInject into Shadow DOM via slot-based rendering.
33Blind XSS (Out-of-Band)Trigger payload execution in an unseen admin panel.