Intermediário 8 desafios
Cross-site scripting
Quando um site pega o que você escreveu e devolve dentro da página sem tratar, o navegador não distingue o texto do dono do texto do visitante: ele executa os dois. Isso é cross-site scripting, e é o seu JavaScript rodando na página, com acesso ao que a página tem. Aqui você começa pelo caso mais simples, uma entrada refletida de volta no corpo do HTML, e aprende que o lugar onde a entrada cai (o corpo, um atributo, dentro de um script) muda o que é preciso para escapar dele. Depois você guarda um payload que dispara para todo visitante, contorna um filtro que só apaga a etiqueta de script, rouba um cookie de sessão de brinquedo, e vê a falha nascer só no JavaScript do cliente, sem o servidor participar. No fim você lê um patch que quase fecha a falha e monta o conserto de verdade: codificar a saída conforme o contexto e usar uma política de conteúdo que não deixe script embutido rodar. Tudo se resolve com o navegador e as páginas de brinquedo que vêm no desafio, sem servidor nem internet.
O que você vai aprender
- XSS refletido
- O contexto da saída
- XSS armazenado
- Contornar um filtro ingênuo
- Cookies
- XSS baseado em DOM
- A defesa contra XSS
- Web Com arquivo Exemplo resolvido
Reflexo na página
0% de acerto, 0 resolveram
Disponível - Web Com arquivo Exemplo resolvido
Onde cai a entrada
Disponível - Web Com arquivo
Recado que fica
Disponível - Web Com arquivo
Filtro ingênuo
Disponível - Web Com arquivo
Roubo do cookie
Disponível - Web Com arquivo
Sink no cliente
Disponível - Web Com arquivo
Lendo o patch
Disponível - Web Com arquivo
Capstone: Pampa Notes
Disponível