SSTI (Server-Side Template Injection)
Como Explorar
SSTI permite que um atacante injete código em templates do lado do servidor, podendo executar comandos ou acessar dados sensíveis.
terminal
Exemplo:
{{7*7}}
{{config}}
- Insira payloads em campos que são renderizados por templates.
- Teste diferentes sintaxes de template ({{ }}, <% %>, etc).
Por que acontece
Ocorre quando dados do usuário são inseridos em templates sem validação, permitindo execução de código no servidor.
- Templates inseguros ou mal configurados.
- Concatenação direta de dados do usuário em templates.
Como Corrigir
- Evite inserir dados do usuário diretamente em templates.
- Use funções de escape/sanitização do template engine.
terminal
// Exemplo seguro em Express (Pug)
res.render('index', { user: escape(userInput) });