Template Injection
Server-Side Template Injection (SSTI) bedeutet, dass Angreifer Template-Syntax in den Rendering-Kontext einschleusen und beliebigen Code in der serverseitigen Template-Engine ausführen.
Zweck
Die durch bis zum Template-Rendering gelangende Benutzereingaben verursachte SSTI und ihre Abwehr verstehen; eine häufige Schwachstelle in Jinja2/Freemarker und Ähnlichem.
Mechanismus
Das Programm rendert Benutzereingaben als Template via template.render(user_input); der Angreifer gibt {{7*7}} oder {{config}} ein, um Ausdrücke auszuführen oder Objekte preiszugeben. Abwehr: Templates von Daten trennen, Sandboxing, sicheres Rendering.
Anwendungsfälle
- Jinja2-SSTI
- Freemarker-Sicherheit
- Audit von Template-Engines