
CVE-2024-51567 è un exploit PoC in Python che bersaglia una vulnerabilità RCE nell'endpoint upgrademysqlstatus di CyberPanel v2.3.6, aggirando le protezioni CSRF.
CVE-2024-51567 è uno script di exploit proof-of-concept (PoC) in Python per CVE-2024-51567, una critica vulnerabilità di iniezione di comandi che colpisce CyberPanel v2.3.6. Questa vulnerabilità, trovata nell'endpoint upgrademysqlstatus, consente l'esecuzione remota di comandi (RCE) bypassando le protezioni CSRF e utilizzando metacaratteri della shell in parametri specifici.
⚠️ Disclaimer Importante: Questo script è destinato a scopi educativi e a test di sicurezza autorizzati su sistemi di tua proprietà o per i quali hai esplicita autorizzazione. L'uso non autorizzato di questo script su qualsiasi sistema è illegale e punibile per legge. L'autore non si assume alcuna responsabilità per un uso improprio. Rispetta sempre gli standard etici e le leggi applicabili.
upgrademysqlstatus in databases/views.py di CyberPanel (prima del commit 5b08cd6) consente a un attaccante remoto di eseguire comandi arbitrari bypassando le protezioni secMiddleware, che filtrano solo le richieste POST. Questa vulnerabilità può essere sfruttata utilizzando metacaratteri della shell nel parametro statusfile./dataBases/upgrademysqlstatushttpxgit clone https://github.com/ajayalf/CVE-2024-51567.git
cd CVE-2024-51567
httpx sia installato:
pip install httpx
Per eseguire lo script su un singolo target, usa il seguente comando:
python CVE-2024-51567.py <target-url>
Esempio:
python CVE-2024-51567.py http://example.com
Per eseguire lo script su più target, crea un file di testo con un elenco di URL di destinazione (un URL per riga) e usa il comando:
python CVE-2024-51567.py <targets.txt>
Esempio:
python CVE-2024-51567.py targets.txt
Se desideri usare più target, crea un file di testo denominato targets.txt o qualsiasi nome preferito. Il formato del file dovrebbe essere un elenco di URL, con un URL per riga, come mostrato di seguito:
http://target1.com
http://target2.com
http://target3.com
Dopo che lo script si connette a un target, puoi inserire comandi shell da eseguire sul server di destinazione. Per uscire, digita exit o quit.
get_CSRF_token(client): Recupera il token CSRF dai cookie sulla pagina principale del target.
client (un oggetto httpx.Client)pwn(client, CSRF_token, cmd): Invia un payload costruito con il token CSRF e il comando desiderato.
client (un oggetto httpx.Client), CSRF_token (stringa), cmd (stringa)exploit(client, cmd): Esegue la funzione pwn sul target per eseguire il comando e stampa l'output.
client (un oggetto httpx.Client), cmd (stringa)run_exploit(target): Inizializza una connessione al target e avvia un ciclo interattivo di comandi.
Se il token CSRF non viene trovato nei cookie, lo script stamperà tutti i cookie ricevuti e uscirà con un messaggio di errore utile.
/ sia l'endpoint corretto per ottenere il token CSRF. Se è diverso, modifica la funzione get_CSRF_token di conseguenza.Per ulteriori informazioni su questa vulnerabilità, consulta le seguenti risorse:
targetexit o quit.Esecuzione Principale: Controlla l'argomento per determinare se il target è un singolo URL o un file con più target.