LFI – Eine interessante Änderung

Mar 18 2023
Zusammenfassung Local File Inclusion (LFI) ist eine Art von Schwachstelle in Webanwendungen, die es einem Angreifer ermöglicht, beliebige Dateien auf dem Webserver einzuschließen und auszuführen. Ein Angreifer kann diese Sicherheitslücke ausnutzen, indem er einen schädlichen Dateipfad als Parameter übergibt, bei dem es sich um eine lokale Datei auf dem Server handeln könnte.

Zusammenfassung

Local File Inclusion (LFI) ist eine Art von Schwachstelle in Webanwendungen, die es einem Angreifer ermöglicht, beliebige Dateien auf dem Webserver einzubinden und auszuführen. Ein Angreifer kann diese Sicherheitslücke ausnutzen, indem er einen schädlichen Dateipfad als Parameter übergibt, bei dem es sich um eine lokale Datei auf dem Server handeln könnte. Dies kann es dem Angreifer ermöglichen, vertrauliche Informationen wie Konfigurationsdateien oder Benutzeranmeldeinformationen einzusehen, beliebigen Code auszuführen oder sogar die vollständige Kontrolle über den Server zu erlangen.

Beschreibung

Ich habe in einem der Programme eine Schwachstelle im Bereich Local File Inclusion (LFI) gefunden, durch die ich die Datei web.xml aus dem Verzeichnis WEB-INF/ herunterladen konnte . Allerdings ist der Fehler mit einer kleinen Änderung recht einfach.

Die Website verfügte über eine Option zum Herunterladen von Kursdetails , bei der Kursdetails über den Parameter „filename=“ von einem Server abgerufen wurden . Es handelte sich dabei um eine POST-Anfrage. Da die Website auf einem IIS- Server lief, dachte ich zunächst daran, einige vertrauliche Dateien herunterzuladen, die jedoch alle eingeschränkt waren. Dann dachte ich daran, die Datei web.xml herunterzuladen , die erfolgreich heruntergeladen wurde. Die heruntergeladene Datei hatte den Benutzernamen und das Passwort „admin“, aber ich konnte kein Anmeldeportal finden, sodass der Schweregrad herabgestuft wurde. Ich habe den Fehler nicht gemeldet, da das Ziel OOS (Out-Of-Scope) war.

Wie habe ich diese Sicherheitslücke gefunden?

  1. Ich bin auf die Website gegangen, auf der es die Option „Kursdetails herunterladen“ gab.
  2. Kursdetails herunterladen
Element prüfen
Hyperlink und Dateiname= Parameter

3. Ich wusste, dass der IIS-Server verwendet wurde, also suchte ich nach dem Pfad von web.xml

WEB-INF/

4. Ich habe den Pfad zu ?filename=/WEB-INF/web.xml bearbeitet

web.xml

5. Dann habe ich auf die Schaltfläche geklickt, die Datei heruntergeladen und geöffnet. Ich habe die Anmeldeinformationen erhalten

Herunterladen
Heruntergeladen
Referenzen

Warum es passiert ist ?

Meiner Meinung nach,

Die Website hat die Benutzereingaben vor der Verarbeitung nicht validiert und bereinigt. Obwohl die meisten sensiblen Dateien blockiert wurden, ist das Blockieren bestimmter Dateien aus meiner Sicht nicht die ideale Lösung. Die Benutzereingaben sollten vor der Verarbeitung validiert und bereinigt werden.

Auswirkung

Die Auswirkungen einer LFI-Schwachstelle können schwerwiegend sein, da sie zu einer vollständigen Kompromittierung des Webservers und seiner Daten führen kann. In meinem Fall beschränkten sich die Auswirkungen jedoch auf das Herunterladen der web.xml- Datei, da der Download aller wichtigen sensiblen Dateien eingeschränkt war, sodass die Auswirkungen mittelmäßig wären.

HINWEIS : Wenn ich das Anmeldefeld gefunden hätte, das mir den Zugriff mit den von mir erhaltenen Anmeldeinformationen ermöglicht, wäre der Schweregrad hoch gewesen.

Berechnetes CVSS

Vektorzeichenfolge – CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Punktzahl – 5,3 (Mittel)

Schadensbegrenzung

Wenn Benutzereingaben eingehen, sollten Eingabevalidierungen und -bereinigungen durchgeführt werden. Der Server sollte die Benutzereingaben nicht ohne Validierung verarbeiten. Die Validierung und Bereinigung sollte sowohl auf der Client- als auch auf der Serverseite erfolgen. Darüber hinaus sollte die Anwendung die Verwendung von Benutzereingaben zum Erstellen von Dateipfaden vermeiden und stattdessen einen Whitelist-Ansatz verwenden, um zulässige Dateipfade anzugeben. Webanwendungs-Firewalls können auch verwendet werden, um Versuche, LFI-Schwachstellen auszunutzen, zu erkennen und zu blockieren.