我有一个相对简单的脚本,如下所示:
<?php
$url = "localhost:2222/test.html";
echo "*** URL ***\n";
echo $url . "\n";
echo "***********\n";
echo "** whoami *\n";
echo exec('whoami');
echo "* Output **\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
当我在命令行上执行它时,它可以工作 - 我从 test.html 中得到微薄的结果。
当我通过加载内置 PHP 服务器并浏览到脚本来运行此脚本时,它会挂起。没有输出到屏幕,没有写入日志。
我读到有时用户权限会妨碍,所以我尝试使用 whoami 来确保运行内置 PHP 服务器的用户与在命令行上执行脚本的用户相同;他们是。
safe_mode 关闭,disable_functions 设置为空。我可以成功执行其他命令(如 whoami)。
我还应该检查什么?内置的 PHP 服务器在满足请求时是否算作其他用户?