
Uma plataforma de treinamento XSS interativa, auto-hospedada, com 33 desafios progressivamente mais difíceis
💸 Se este projeto te ajudar, considere apoiá-lo com uma doação de $10 para mantê-lo crescendo. Link: https://rzp.io/rzp/zgkC6h5B
Uma plataforma interativa e auto-hospedada de treinamento em XSS com 33 desafios progressivamente mais difíceis — projetada para hackers, pentesters e desenvolvedores que querem dominar cross-site scripting desde os fundamentos até a exploração no mundo real.
⚡ Construído para atacantes
⚡ Projetado para aprendizado
⚡ Engenharia para simplicidade
33 desafios progressivos de XSS, desde reflexão básica até exploração avançada no mundo real.
| # | Nome | Descrição |
|---|---|---|
| 1 | Olá, XSS Refletido | Sem filtros, sem codificação. Sua entrada é refletida diretamente na página. |
| 2 | Guestbook de XSS Armazenado | Sua entrada é armazenada e renderizada para todos os visitantes. XSS persistente clássico. |
git clone https://github.com/The-Cyber-Ledger/TCL-xss-labs.git
cd TCL-xss-labs
npm install
npm start
Abra: http://localhost:3000
Execute todos os 33 laboratórios instantaneamente com um comando:
docker pull shadowpacket/tcl-xss-labs
docker run -p 3000:3000 shadowpacket/tcl-xss-labs
Abra: http://localhost:3000
Trigger alert() Ou realizar exploração realista (exfiltração de dados, tomada de controle de admin, etc.)Este projeto é um ambiente de treinamento intencionalmente vulnerável. Use apenas em ambientes locais ou controlados NÃO ataque sistemas sem autorização Apenas para fins educacionais
A maioria das pessoas aprende XSS resolvendo laboratórios. Este projeto ajuda você a entender a exploração como um verdadeiro atacante.
| # | Nome | Descrição |
|---|
| 3 | Tag Script Bloqueada | O servidor remove as tags <script>. Encontre outra maneira de executar JavaScript. |
| 4 | Injeção de Atributo | Sua entrada cai dentro de um atributo HTML. Saia e execute código. |
| 5 | Contexto JavaScript | Sua entrada é colocada dentro de uma variável string JavaScript. Escape e injete. |
| 28 | Injeção de Markdown | Um renderizador ingênuo de Markdown converte seu post em HTML. Faça-o executar JavaScript. |
| 32 | Injeção de Nome de Arquivo | Carregue um arquivo. O nome do arquivo é refletido na interface sem sanitização. |
| # | Nome | Descrição |
|---|
| 6 | Lista de Bloqueio de Manipuladores de Eventos | Manipuladores de eventos comuns são bloqueados. Encontre um obscuro que o filtro não pegou. |
| 7 | Filtro de Maiúsculas e Minúsculas & Palavras-chave | Filtro agressivo de passagem única. Use palavras-chave aninhadas para reconstruí-las após a remoção. |
| 8 | XSS Baseado em DOM | A vulnerabilidade existe inteiramente no JavaScript do lado do cliente lendo a URL. |
| 25 | Redirecionamento Aberto → XSS | Encadeie um redirecionamento aberto com uma tag meta-refresh para obter XSS. |
| 27 | XSS DOM no localStorage | Dados armazenados no localStorage são renderizados ao recarregar sem sanitização. |
| # | Nome | Descrição |
|---|
| 9 | Injeção em href com Filtros | A entrada vai para um href de âncora com múltiplos filtros aplicados. |
| 10 | Bypass de CSP via JSONP | Ignore a Política de Segurança de Conteúdo usando um endpoint JSONP de mesma origem. |
| 11 | Bypass de Dupla Codificação | Explore o comportamento de dupla decodificação entre WAF e aplicação. |
| 12 | Injeção de Template no Lado do Cliente | O motor de template avalia {{expressões}} usando eval. |
| 13 | XSS por postMessage | Explore mensagens entre janelas inseguras sem validação de origem. |
| 14 | XSS por Upload de SVG | Carregue arquivos SVG e execute payloads usando recursos específicos de SVG. |
| 15 | XSS por Mutação | Ignore a sanitização usando o comportamento de mutação do DOM do navegador. |
| 16 | Filtro Recursivo de Palavras-chave | O filtro itera recursivamente — use contextos de execução alternativos. |
| 17 | O Poliglota | O payload deve executar em contextos HTML, de atributo e JS. |
| 18 | Clobbering de DOM | Sobrescreva variáveis globais usando elementos HTML criados. |
| 19 | Poluição de Protótipo → XSS | Polua a cadeia de protótipos para alcançar XSS sem injeção direta de HTML. |
| 20 | Injeção de Tag Base | Injete <base> para manipular o carregamento de recursos e ignorar CSP. |
| 21 | Injeção de Marcação Solta | Exfiltre dados sensíveis usando apenas injeção de HTML (sem JS). |
| 22 | Injeção de JSON em Bloco de Script | Escape do contexto JSON dentro de um bloco de script com nonce. |
| 23 | Bypass de Esquema de URL | Ignore filtros que bloqueiam javascript: usando truques de codificação. |
| 24 | Exfiltração por Injeção de CSS | Use CSS para extrair dados sensíveis sem JavaScript. |
| 26 | CRLF → Divisão de Resposta | Injete cabeçalhos para dividir a resposta HTTP e injetar HTML. |
| 29 | Escape de Sandbox de iframe | Escape de configurações inseguras de sandbox de iframe. |
| 30 | Escape de Sandbox do AngularJS | Explore técnicas de bypass do sandbox de expressões do AngularJS. |
| 31 | Injeção de Slot em Componente Web | Injete no Shadow DOM via renderização baseada em slot. |
| 33 | XSS Cego (Fora de Banda) | Acione a execução do payload em um painel de administração não visto. |