hackatoll
Zur Lernplattform

Wissen › Server-Side Template Injection (SSTI)

Server-Side Template Injection (SSTI)

Nutzereingabe wird als Template gerendert — oft ein direkter Weg zur Code-Ausführung.

Injection Schweregrad: Kritisch

SSTI entsteht, wenn von Nutzern kontrollierte Werte nicht als Daten in ein Template eingesetzt, sondern selbst als Template-Quelle gerendert werden. Die Template-Engine wertet dann eingeschleuste Ausdrücke serverseitig aus — je nach verfügbaren Funktionen bis hin zu Remote Code Execution.

Wie der Angriff funktioniert

Beispiel

Nutzerwerte gehören als Variable zugewiesen — niemals als Template-Quelle:

// gefährlich: Nutzerwert wird als Template gerendert
$view->setTemplateSource($userInput);
$view->render();

// sicher: Nutzerwert ist nur eine Variable im festen Template
$view->setTemplatePathAndFilename($trustedTemplate);
$view->assign('value', $userInput);

Mögliche Auswirkungen

◆ In TYPO3 beachten

Worauf du in TYPO3 achten musst

In TYPO3 ist die Template-Engine Fluid. SSTI entsteht, wenn Code Nutzereingaben als Fluid-Quelle rendert — direkt oder über Hilfsfunktionen. Admin-definierte Templates sind unkritisch; Nutzer-definierte Template-Quellen sind das Problem.

Niemals setTemplateSource() auf Nutzereingabe

StandaloneView/TemplateView mit setTemplateSource($userInput) macht die Eingabe zum Template. Immer ein festes Template per setTemplatePathAndFilename() nutzen und Werte über assign() übergeben.

fluidParseString()/Inline-Rendering mit Vorsicht

Hilfsfunktionen, die Strings als Fluid parsen, dürfen nur auf vertrauenswürdige, admin-kontrollierte Strings angewandt werden — nie auf submitted values.

Konfiguration ist nicht gleich beliebige Eingabe

Dass Redakteure/Integratoren Fluid-Snippets in der Konfiguration hinterlegen dürfen, ist gewollt. Gefährlich wird es, wenn END-Nutzer (FE) Template-Quelle beeinflussen können.

Extensions aktuell halten

SSTI-Lücken traten in verbreiteten Extensions auf, wenn Feldwerte als Template gerendert wurden. Security-Advisories des TYPO3-Teams verfolgen und zeitnah patchen.

Schutzmaßnahmen

Interaktiv üben

In der Lernplattform kannst du diese Schwachstellenklasse an einer echten, isolierten TYPO3-Instanz nachvollziehen:

Weiterlesen

Jetzt interaktiv üben →