hackatoll
Zur Lernplattform

Wissen › Unsicherer Datei-Upload → Code-Ausführung

Unsicherer Datei-Upload → Code-Ausführung

Eine hochgeladene, ausführbare Datei im Webroot wird zur Hintertür (Webshell).

Ausführung Schweregrad: Kritisch

Erlaubt eine Anwendung das Hochladen von Dateien ohne ausreichende Prüfung und sind diese anschließend im Webroot ausführbar, kann ein Angreifer eine Webshell platzieren und Code auf dem Server ausführen.

Wie der Angriff funktioniert

Beispiel

Entscheidend sind Allowlist, Umbenennung und ein nicht-ausführbares Zielverzeichnis:

// Prinzip einer sicheren Annahme
// 1) Typ gegen ALLOWLIST prüfen (Inhalt, nicht nur Endung/MIME)
// 2) neutralen, zufälligen Dateinamen vergeben
// 3) außerhalb des Webroots bzw. in nicht-ausführbarem Verzeichnis ablegen
// 4) Ausführung per Serverconfig unterbinden

Mögliche Auswirkungen

◆ In TYPO3 beachten

Worauf du in TYPO3 achten musst

TYPO3 bringt mit dem fileDenyPattern und FAL (File Abstraction Layer) wirksame Schutzmechanismen mit. Risiken entstehen durch Aufweichen dieser Defaults oder eigene Upload-Handler.

fileDenyPattern nicht aufweichen

[BE][fileDenyPattern] blockt standardmäßig ausführbare und gefährliche Dateien (php, phar, .htaccess …). Diese Vorgabe nicht lockern; eigene Uploads daran orientieren.

FAL + Dateiendungs-Allowlist

Uploads über FAL abwickeln und erlaubte Endungen per Allowlist einschränken ([GFX]/Mime-Prüfung, nicht nur Client-MIME vertrauen).

Extbase FileUpload sauber validieren

Bei eigenen Upload-Formularen Typ/Größe serverseitig validieren, Dateinamen neutralisieren und Ziel außerhalb ausführbarer Pfade wählen.

fileadmin/uploads nicht ausführbar

Sicherstellen, dass Upload-Verzeichnisse serverseitig kein PHP ausführen (Webserver-Konfiguration). Das begrenzt den Schaden einer durchgerutschten Datei.

SVG & 'harmlose' Formate

Auch nicht-PHP-Formate können gefährlich sein (SVG mit Script → XSS). TYPO3 sanitized SVG; Vorsicht bei eigener Verarbeitung.

Schutzmaßnahmen

Weiterlesen

Jetzt interaktiv üben →