Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2024-38819 — Tiefgehende Analyse von CVE-2024-38819, einer Spring WebFlux Dateipfad-Traversal-Schwachstelle, mit code-level Aufschlüsselung, PoC und Minderungsstrategien einschließlich Filter und IPS-Regeln. | Kitploit
Tools/GitHubGitHub/skrkcb2/cve-2024-38819
SchwachstellenanalyseExploitationWebsicherheitPenetrationstestsPapers & ForschungLernen & Bildung
GitHubskrkcb2/cve-2024-38819

cve-2024-38819

Tiefgehende Analyse von CVE-2024-38819, einer Spring WebFlux Dateipfad-Traversal-Schwachstelle, mit code-level Aufschlüsselung, PoC und Minderungsstrategien einschließlich Filter und IPS-Regeln.

Repository anzeigen
9vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2024-38819

01. File-Traversal und Webflux Überblick

  • 1) File-Traversal und WebFlux Überblick

    File-Traversal (Pfad-Traversal, Path Traversal) Schwachstelle ist eine Schwachstelle, die es Angreifern ermöglicht, Dateisystemberechtigungen in Webanwendungen zu umgehen und auf beliebige Dateien zuzugreifen. Sie ist als CWE-22 klassifiziert.

    Spring WebFlux ist ein in Spring 5 eingeführtes Modul, das reaktive Programmierung unterstützt, die Entwicklung asynchroner nicht-blockierender Anwendungen ermöglicht und mit WebFlux.fn funktionale Endpunkt-Routing bereitstellt, das eine prägnante und flexible Routing-Konfiguration mit Lambda-Ausdrücken unterstützt.

    CVE-2024-38819 tritt in Anwendungen auf, die WebFlux.fn oder WebMVC.fn verwenden. Dieses Dokument untersucht den Code-Ablauf, wie diese Schwachstelle in WebFlux ausgelöst wird, und sucht nach entsprechenden Gegenmaßnahmen.

02. File-Traversal Schwachstellenanalyse in Webflux 6.13-Umgebung

  • 2.1 File-Traversal Analyse mit Webflux 6.13

    In Spring Webflux 6.13 kann ein File-Traversal-Angriff über ein Beispiel zum Ausliefern statischer Ressourcen durchgeführt werden.
    Wir werden das Beispiel untersuchen und herausfinden, wie mit Spring Webflux ein File-Traversal verursacht wird.

1) File-Traversal Angriffsablauf mit Spring Webflux 6.13

Bildbeschreibung

[Abbildung 1] FileApplication.java

[Abbildung 1] zeigt, dass Spring WebFlux alle Anfragen an /static/** aus dem Verzeichnis C:/file des Servers bedient. Hier
beginnt das Problem beim Aufruf von RouterFunctions.resources in [Abbildung 2] und [Abbildung 3] der PathResourceLookupFunction.class von WebFlux.

Bildbeschreibung

[Abbildung 2] PathResourceLookupFunction.class - apply

[Abbildung 2] PathResourceLookupFunction - apply überprüft in Spring WebFlux, ob der angegebene Pfad auf eine gültige Ressource verweist, und gibt diese Ressource als
Mono zurück. Während dieses Prozesses führt es mehrere Schritte wie Pfadabgleich, Validierung, Pfaddecodierung und Ressourcenzugriff durch, wobei die Schwachstelle in der isInvalidPath
Funktion auftritt.

Bildbeschreibung

[Abbildung 3] PathResourceLookupFunction.class - isInvalidPath

[Abbildung 3] PathResourceLookupFunction - isInvalidPath zeigt, dass die Bedingung StringUtils.cleanPath(path).contains("../") existiert.
Bei einer Anfrage an http://localhost:8080/static/file/../Windows/System32/drivers/etc/hosts kann diese Bedingung nicht True werden. Der Grund:

Bildbeschreibung

Bildbeschreibung

[Abbildung 4] StringUtils.class - cleanPath

[Abbildung 4] StringUtils.class - cleanPath zeigt, dass StringUtils.cleanPath(path) den TOP_PATH("..") entfernt, den Pfad in pathElements ablegt und top auf 0 setzt, sodass
die Angriffszeichenfolge mit einem ".." als normale Zeichenfolge behandelt wird. Daher gibt die isInvalidPath-Funktion in [Abbildung 3] false zurück.

Bildbeschreibung

[Abbildung 5] PathResourceLookupFunction.class - apply - 2

Bildbeschreibung

[Abbildung 6] PathResourceLookupFunction.class - isResourceUnderLocation

Durch den Aufruf von cleanPath in isResourceUnderLocation aus [Abbildung 5] wird über [Abbildung 6] eine erneute Prüfung mit cleanPath durchgeführt, und der in [Abbildung 5] übergebene Pfad ist C:/file../Windows/System32/drivers/etc/hosts.

Bildbeschreibung

[Abbildung 7] StringUtils.class - cleanPath -2

Durch den Code in [Abbildung 7] wird das Präfix zu C:/, der Pfad wird über [Abbildung 4] zu / Windows/System32/drivers/etc/hosts geändert, und die endgültige Rückgabe erfolgt als
C:/Windows/System32/drivers/etc/hosts.

2) File-Traversal Angriffsbeispiel mit Spring Webflux 6.13

Derzeit wurde der Test unter Windows mit C:/file durchgeführt, aber dieser Fall ist sehr gefährlich, wenn er unter Linux mit symbolischen Links ausgeführt wird.
(Bei zweimaligem ../../ funktioniert die normale Logik, die Schwachstelle tritt nur bei einmaligem ../ auf) 20250207_150316

2-1) File-Traversal Angriffsbeispiel 2 mit Spring Webflux 6.13

Angriff mit symbolischem Link auf einem Linux-Server

 public RouterFunction<ServerResponse> staticResourceRouter() {
     return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
 }

Nach dem Hinzufügen eines symbolischen Links ln -s /static /app/static/link Angriff durchführen 20250208_101836

03. Gegenmaßnahmen

Bisher haben wir den Ablauf von File Traversal (CVE-2024-38819) in der Spring Webflux-Umgebung überprüft. Da es sich um eine Angriffsmethode handelt, bei der Serverinformationen gestohlen werden, sind Gegenmaßnahmen wichtig. Dazu schlagen wir Aktualisierung auf die neueste Version, Erstellung zusätzlicher Prüflogik und Blockierung durch IPS vor.

Tool herunterladen