Ein unsicherer Datei-Upload erlaubt es, Dateien hochzuladen oder weiterzuverarbeiten, deren Typ, Inhalt, Name, Größe oder spätere Verwendung nicht ausreichend kontrolliert wird. Die Folgen reichen von gespeicherten XSS-Angriffen bis zur vollständigen Ausführung von Code auf dem Server.
Warum sind Datei-Uploads gefährlich?
Eine hochgeladene Datei durchläuft mehrere Systeme: Webserver, Anwendung, Virenscanner, Bild- oder Dokumentbibliothek, Objektspeicher, CDN und schließlich den Browser anderer Nutzer. Jede Komponente interpretiert Dateiname, Metadaten und Inhalt anders. Was beim Upload wie ein Bild aussieht, kann beim Abruf als HTML oder auf dem Server als ausführbares Skript behandelt werden.
Welche Angriffe sind möglich?
| Angriff | Mögliche Folge |
|---|---|
| Webshell/Code-Upload | Der Webserver führt PHP, JSP, ASPX oder andere aktive Inhalte aus. |
| Stored XSS | HTML, SVG oder falsch ausgelieferte Dateien führen Skript im Browser aus. |
| Parser-Angriff | Manipulierte Bilder, Archive, PDFs oder Office-Dateien nutzen Fehler in Bibliotheken. |
| Pfadmanipulation | Dateinamen überschreiben Dateien oder verlassen das vorgesehene Verzeichnis. |
| Ressourcenverbrauch | Große Dateien, Zip Bombs oder Bilddimensionen erschöpfen Speicher und Rechenzeit. |
| Malware-Verteilung | Die Anwendung wird zum vertrauenswürdig wirkenden Download-Kanal. |
| Unbefugter Zugriff | Vorhersagbare URLs oder fehlende Berechtigungen legen private Uploads offen. |
Warum reichen Dateiendung und MIME-Type nicht?
Beides wird vom Client geliefert oder lässt sich leicht manipulieren. Doppelte Endungen, Groß-/Kleinschreibung, alternative Erweiterungen und unterschiedliche Serverkonfigurationen umgehen einfache Sperrlisten. Magic Bytes helfen bei der Erkennung, beweisen aber nicht, dass der gesamte Inhalt harmlos ist; polyglotte Dateien können mehrere gültige Formate gleichzeitig darstellen. Eine Allowlist und sichere Weiterverarbeitung müssen zusammenspielen.
Wie werden Uploads sicher verarbeitet?
- Nur fachlich benötigte Dateitypen, Größen und Mengen erlauben.
- Typ aus Inhalt und Parserergebnis bestimmen und nicht dem Client-Header vertrauen.
- Zufällige serverseitige Namen verwenden; Pfade und Originalnamen niemals direkt übernehmen.
- Dateien außerhalb des Webroots oder in isoliertem Objektspeicher ohne Ausführungsrechte ablegen.
- Downloads mit festem
Content-Type,Content-DispositionundX-Content-Type-Options: nosniffausliefern. - Zugriff bei jedem Download autorisieren und temporäre URLs kurzlebig halten.
- Malware-Prüfung, Quarantäne, Limits und Monitoring als zusätzliche Schichten einsetzen.
Codebeispiel: Upload in Laravel
Verwundbar: Originalname und öffentliche Ablage werden übernommen.
$file = $request->file('document');
$file->move(public_path('uploads'), $file->getClientOriginalName());
Sicherer Grundaufbau:
$validated = $request->validate([
'document' => [
'required',
'file',
'mimes:pdf',
'max:5120',
],
]);
$path = $validated['document']->store('documents', 'private');
$document = $request->user()->documents()->create([
'storage_key' => $path,
'original_name' => $validated['document']->getClientOriginalName(),
]);
Der private Disk darf nicht ausführbar oder direkt öffentlich erreichbar sein. Autorisierte Downloads, Malware-Prüfung und sichere PDF-Verarbeitung bleiben eigene Schichten.
Was gilt für Bilder und Dokumente?
Bilder sollten mit einer gepflegten Bibliothek vollständig dekodiert und neu kodiert werden; dadurch verschwinden viele fremde Zusatzdaten, nicht aber jede Parser-Schwachstelle. SVG ist aktiver XML-Inhalt und benötigt besondere Behandlung. Office- und PDF-Dateien können Makros, Links, eingebettete Objekte und personenbezogene Metadaten enthalten. Archive werden nur mit Grenzen für Anzahl, Pfade, Verschachtelung und entpackte Gesamtgröße verarbeitet.
Wie werden Upload-Funktionen getestet?
Tester verändern Endung, MIME-Type, Signatur, Dateiname und Größe unabhängig voneinander. Sie prüfen alternative Upload-Endpunkte, Chunking, Importfunktionen, Archive und die spätere Auslieferung. Entscheidend ist, ob Inhalt ausgeführt, von anderen Nutzern gelesen, ohne Berechtigung ersetzt oder zur Belastung von Parsern genutzt werden kann. Nachweise verwenden ungefährliche Marker statt funktionsfähiger Malware.
Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.
Hast du Feedback zum Thema Unsicherer Datei-Upload? Schreib uns!
Weitere Dienstleistungen
Zusätzliche IT-Sicherheitslösungen für umfassenden Schutz
Red Teaming
Simulation echter Angriffe auf Ihr Unternehmen inklusive Personen, Infrastruktur und Prozesse. Ein umfassender Ansatz zur Überprüfung Ihrer gesamten Sicherheitsstrategie.
Mehr erfahrenPhishing-Übungen
Praxisnahe Phishing-Simulationen zur Sensibilisierung Ihrer Mitarbeiter. Erhöhen Sie die Awareness und reduzieren Sie das Risiko erfolgreicher E-Mail-basierter Angriffe.
Mehr erfahren