Intermediário 8 desafios
Injeção de template no servidor
Muitos sites montam a página com um motor de template: um texto com buracos como {{ nome }} que o servidor preenche. O perigo nasce quando o site cola o que o visitante escreve dentro do próprio template, em vez de passar como dado. Aí {{7*7}} não aparece na tela: aparece 49, porque o motor avaliou o seu texto. Aqui você segue a injeção de template no servidor (SSTI) em pedaços: primeiro reconhece que o template avalia a sua entrada, depois identifica o motor pelo comportamento, lê um segredo do contexto, escapa do contexto até a execução, contorna um filtro ingênuo, lê o patch que fecha a falha, arranca um segredo às cegas quando a página só devolve um status e, no fim, junta tudo. Cada desafio termina no mesmo conserto: nunca colocar a entrada do usuário na linguagem do template, passar como dado e usar um motor em modo seguro. Tudo se resolve lendo o código e rodando um motor de brinquedo (o Pinefold) que vem nos arquivos, com o Node. Nada mira sistema real nem roda comando de verdade: o alvo é sempre uma loja de brinquedo, a AgroPampa, e o Pinefold só consulta uma tabela fixa.
O que você vai aprender
- Entrada que vira comando
- Injeção de template
- Identificar o motor
- O contexto do template
- Escapar para a execução
- Contornar o filtro
- A defesa contra SSTI
- Injeção cega
- Web Com arquivo Exemplo resolvido
O template avalia
Disponível - Web Com arquivo Exemplo resolvido
Que motor é esse
Disponível - Web Com arquivo
Lendo o contexto
Disponível - Web Com arquivo
Saindo do template
Disponível - Web Com arquivo
Driblando o filtro
Disponível - Web Com arquivo
Lendo o patch
Disponível - Web Com arquivo
SSTI às cegas
Disponível - Web Com arquivo
Capstone de SSTI
Disponível