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) });