Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2024-38819 — Analisi approfondita di CVE-2024-38819, una vulnerabilità di path traversal in Spring WebFlux, con analisi a livello di codice, PoC e strategie di mitigazione inclusi filtri e regole IPS. | Kitploit
Strumenti/GitHubGitHub/skrkcb2/cve-2024-38819
Analisi delle VulnerabilitàExploitSicurezza WebPenetration TestingPaper e RicercaApprendimento e Formazione
GitHubskrkcb2/cve-2024-38819

cve-2024-38819

Analisi approfondita di CVE-2024-38819, una vulnerabilità di path traversal in Spring WebFlux, con analisi a livello di codice, PoC e strategie di mitigazione inclusi filtri e regole IPS.

Vedi Repository
91 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2024-38819

01. Panoramica di File-Traversal e WebFlux

  • 1) Panoramica di File-Traversal e WebFlux

    La vulnerabilità File-Traversal (path traversal) è un tipo di attacco, identificato come CWE-22, che consente a un attaccante di aggirare i permessi del file system in un'applicazione web e accedere a file arbitrari.

    Spring WebFlux è un modulo che supporta la programmazione reattiva, introdotto in Spring 5; supporta lo sviluppo di applicazioni asincrone non bloccanti e WebFlux.fn fornisce il routing funzionale degli endpoint, consentendo configurazioni di routing concise e flessibili tramite espressioni lambda.

    CVE-2024-38819 si verifica nelle applicazioni che utilizzano WebFlux.fn e WebMVC.fn; questo documento esamina il flusso del codice per capire come la vulnerabilità si manifesta in WebFlux e cerca di individuare le relative contromisure.

02. Analisi della vulnerabilità File-Traversal nell'ambiente Webflux 6.13

  • 2.1 Analisi di File-Traversal con Webflux 6.13

    In Spring Webflux 6.13 è possibile effettuare un attacco File-Traversal tramite un esempio di servizio di risorse statiche.
    Esaminando l'esempio, vogliamo capire come viene innescato il File-Traversal con Spring Webflux.

1) Flusso dell'attacco File-Traversal con Spring Webflux 6.13

descrizione dell'immagine

[Figura 1] FileApplication.java

[Figura 1] mostra che in Spring WebFlux tutte le richieste in arrivo su /static/** vengono cercate e servite dalla directory C:/file del server. Qui
il problema inizia nella chiamata RouterFunctions.resources, nella classe PathResourceLookupFunction.class di WebFlux ([Figura 2], [Figura 3]).

descrizione dell'immagine

[Figura 2] PathResourceLookupFunction.class - apply

[Figura 2] PathResourceLookupFunction - apply verifica che il percorso fornito punti a una risorsa valida in Spring WebFlux e restituisce la risorsa
sotto forma di Mono. In questo processo vengono eseguiti diversi passaggi come corrispondenza del percorso, validazione, decodifica del percorso e accesso alla risorsa; la funzione isInvalidPath
è dove si verifica la vulnerabilità.

descrizione dell'immagine

[Figura 3] PathResourceLookupFunction.class - isInvalidPath

[Figura 3] PathResourceLookupFunction - isInvalidPath mostra la condizione StringUtils.cleanPath(path).contains("../") ,
ma quando si richiede http://localhost:8080/static/file/../Windows/System32/drivers/etc/hosts questa condizione non può diventare True. Il motivo:

descrizione dell'immagine

descrizione dell'immagine

[Figura 4] StringUtils.class - cleanPath

Osservando [Figura 4] StringUtils.class - cleanPath, StringUtils.cleanPath(path) rimuove TOP_PATH(".."), inserisce il percorso in pathElements e top diventa 0, quindi
la sintassi di attacco con un solo ".." viene trattata come sintassi normale. Di conseguenza, la funzione isInvalidPath di [Figura 3] restituisce false e

descrizione dell'immagine

[Figura 5] PathResourceLookupFunction.class - apply - 2

descrizione dell'immagine

[Figura 6] PathResourceLookupFunction.class - isResourceUnderLocation

Con la chiamata a cleanPath in isResourceUnderLocation di [Figura 5], viene eseguita un'ulteriore verifica tramite cleanPath in [Figura 6]; il percorso passato da [Figura 5] è C:/file../Windows/System32/drivers/etc/hosts e

descrizione dell'immagine

[Figura 7] StringUtils.class - cleanPath -2

Tramite il codice di [Figura 7], prefix diventa C:/ e il percorso viene modificato in /Windows/System32/drivers/etc/hosts tramite [Figura 4]; il ritorno finale è
quindi gestito come C:/Windows/System32/drivers/etc/hosts.

2) Esempio di attacco File-Traversal con Spring Webflux 6.13

Al momento il test è stato eseguito su Windows con C:/file, ma questo caso è molto pericoloso se combinato con un collegamento simbolico su Linux.
(Con ../../ la logica è normale; la vulnerabilità si verifica solo nel caso di un singolo ../) 20250207_150316

2-1) Secondo esempio di attacco File-Traversal con Spring Webflux 6.13

Attacco su server Linux con collegamento simbolico

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

Aggiunto il collegamento simbolico con ln -s /static /app/static/link, quindi attacco 20250208_101836

03. Contromisure

Finora abbiamo esaminato il flusso con cui File Traversal (CVE-2024-38819) viene eseguito in ambiente Spring WebFlux. Poiché si tratta di una modalità di attacco che consente il furto delle informazioni del server, le contromisure sono importanti. A tal fine, proponiamo l'aggiornamento all'ultima versione, la creazione di logiche di controllo aggiuntive e il blocco tramite IPS.

Scarica lo strumento