Aller au contenu
uencoder

Template Injection

L'injection de template côté serveur (SSTI) consiste pour un attaquant à injecter de la syntaxe de template dans le contexte de rendu, exécutant du code arbitraire dans le moteur de templates du serveur.

Objectif

Comprendre la SSTI provoquée par des entrées utilisateur atteignant le rendu de templates et ses défenses ; une vulnérabilité courante de Jinja2/Freemarker et similaires.

Mécanisme

Le programme rend l'entrée utilisateur comme template via template.render(user_input) ; l'attaquant saisit {{7*7}} ou {{config}} pour exécuter des expressions ou faire fuiter des objets. Défenses : séparer les templates des données, bac à sable, rendu sûr.

Cas d’usage

  • SSTI dans Jinja2
  • Sécurité de Freemarker
  • Audit de moteurs de templates

Outils associés

References