SSTI (Server-Side Template Injection)
hackingDéfinition
Injection dans un moteur de templates (Jinja2, Twig, Freemarker) permettant l'exécution de code arbitraire côté serveur en exploitant l'évaluation dynamique des expressions templates.
Description
Le SSTI exploite l'évaluation dynamique des moteurs de templates côté serveur (Jinja2, Twig, Freemarker) pour exécuter du code arbitraire. Quand des données utilisateur sont rendues directement dans un template sans échappement, elles sont évaluées comme des expressions du moteur.
Exploitation
Un payload {{7*7}} affiché comme 49 confirme une SSTI Jinja2. Des payloads avancés accèdent aux classes Python pour exécuter des commandes OS, lire des fichiers ou établir des connexions réseau vers des serveurs de l'attaquant.
Défense
- Passer les données utilisateur comme variables au rendu de template, jamais les concaténer dans le template
- Activer les modes sandbox des moteurs de templates pour restreindre l'accès aux objets système
- Tester systématiquement les points d'entrée avec des payloads SSTI dans le cadre des audits
Besoin d'un expert sur ce sujet ?
Audit, pentest, conformité ISO 27001, développement IA sécurisé — demandez un devis gratuit.
Demander un devis