In dieser Video-Anleitung haben wir den Raum „Upload-Schwachstellen“ von TryHackMe behandelt, in dem wir Methoden und Techniken zum Ausnutzen von Schwachstellen beim Datei-Upload sowie zum Umgehen von Upload-Filtern, beispielsweise durch die Verwendung von magischen Zahlen, das Ändern der Dateierweiterung und mehr, demonstriert haben.

OSCP-Notizen abrufen

Der komplette praktische Kurs zum Penetrationstest von Webanwendungen

Die Möglichkeit, Dateien auf einen Server hochzuladen, ist zu einem integralen Bestandteil unserer Interaktion mit Webanwendungen geworden. Sei es ein Profilbild für eine Social-Media-Website, ein Bericht, der in den Cloud-Speicher hochgeladen wird, oder das Speichern eines Projekts auf Github; die Anwendungsmöglichkeiten für Datei-Upload-Funktionen sind grenzenlos.

Leider können Datei-Uploads bei unsachgemäßer Handhabung auch schwerwiegende Schwachstellen im Server verursachen. Dies kann zu relativ kleinen, lästigen Problemen bis hin zur vollständigen Remote Code Execution (RCE), wenn es einem Angreifer gelingt, eine Shell hochzuladen und auszuführen. Mit uneingeschränktem Upload-Zugriff auf einen Server (und der Möglichkeit, Daten nach Belieben abzurufen) könnte ein Angreifer vorhandene Inhalte verunstalten oder anderweitig verändern – bis hin zum Einfügen bösartiger Webseiten, die zu weiteren Schwachstellen wie XSS oder CSRF führen. Durch das Hochladen beliebiger Dateien könnte ein Angreifer den Server möglicherweise auch dazu verwenden, illegale Inhalte zu hosten und/oder bereitzustellen oder vertrauliche Informationen preiszugeben. Realistisch betrachtet ist ein Angreifer, der eine beliebige Datei ohne Einschränkungen auf Ihren Server hochladen kann, in der Tat sehr gefährlich.

Der Zweck dieses Raums besteht darin, einige der Schwachstellen zu untersuchen, die sich aus unsachgemäßer (oder unzureichender) Handhabung von Datei-Uploads ergeben. Insbesondere werden wir uns mit Folgendem befassen:

  • Vorhandene Dateien auf einem Server überschreiben
  • Hochladen und Ausführen von Shells auf einem Server
  • Umgehen der clientseitigen Filterung
  • Umgehen verschiedener Arten der serverseitigen Filterung
  • Validierungsprüfungen für Inhaltstypen täuschen

Wir haben also einen Datei-Upload-Punkt auf einer Site. Wie können wir diesen ausnutzen?

Wie bei jeder Art von Hacking ist die Aufzählung der Schlüssel. Je mehr wir über unsere Umgebung verstehen, desto besser können wir Tun damit. Ein Blick auf den Quellcode der Seite ist gut, um zu sehen, ob irgendeine Art von clientseitiger Filterung angewendet wird. Das Scannen mit einem Verzeichnis-Bruteforcer wie Gobuster ist in der Regel bei Web-Angriffen hilfreich und kann verraten, wohin Dateien hochgeladen werden; Gobuster ist nicht mehr standardmäßig auf Kali installiert, kann aber mit installiert werden sudo apt installiere gobuster. Abfangen von Upload-Anfragen mit Burpsuite wird auch nützlich sein. Browser-Erweiterungen wie Wappalysator kann auf einen Blick wertvolle Informationen über die Site liefern, auf die Sie abzielen.

Mit einem grundlegenden Verständnis davon, wie die Website unsere Eingaben verarbeitet, können wir uns ein wenig umsehen und herausfinden, was wir hochladen können und was nicht. Wenn die Website clientseitige Filterung verwendet, können wir uns einfach den Code für den Filter ansehen und versuchen, ihn zu umgehen (mehr dazu später!). Wenn die Website serverseitige Filterung verwendet, müssen wir möglicherweise raten, wonach der Filter sucht, eine Datei hochladen und dann basierend auf der Fehlermeldung etwas leicht anderes versuchen, wenn der Upload fehlschlägt. Das Hochladen von Dateien, die Fehler provozieren sollen, kann dabei helfen. Tools wie Burpsuite oder OWASP Zap kann in dieser Phase sehr hilfreich sein.

Raumantworten

Wie lautet der Name der Bilddatei, die überschrieben werden kann?

Überschreibe das Bild. Welche Flagge erhältst du?

Führen Sie einen Gobuster Scannen Sie die Website mit der Syntax aus dem Screenshot oben. Welches Verzeichnis könnte für Uploads verwendet werden?

(NB: Das ist eine gute Angewohnheit und wird Ihnen bei den bevorstehenden Aufgaben gute Dienste leisten …)

Holen Sie sich entweder eine Web-Shell oder eine Reverse-Shell auf die Maschine.
Was ist das Flag im Verzeichnis /var/www/ des Servers?

Welche ist die traditionell vorherrschende serverseitige Skriptsprache?

Wie würden Sie bei der Validierung anhand der Dateierweiterung eine Liste akzeptierter Erweiterungen nennen (wobei der Server alle Erweiterungen ablehnt, die nicht in der Liste enthalten sind)?

[Forschung] Was MIME Welchen Typ würden Sie beim Hochladen einer CSV-Datei erwarten?

Was ist das Flag in /var/www/?

Was ist das Flag in /var/www/?

Holen Sie sich die Flagge von /var/www/

Hacken Sie die Maschine und schnappen Sie sich das Flag von /var/www/

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen