【发布时间】:2018-03-31 13:49:46
【问题描述】:
如果我执行以下命令,我会得到一个“嘿”输出:
echo shell_exec("echo 'hey'");
但是如果我执行以下命令,它不会杀死任何screen:
echo shell_exec("killall screen");
如果我这样做了
echo shell_exec("sh /var/www/html/run.sh");
它根本不会运行那个文件(那个文件也会杀屏)
如果我什至使用 get 内容获取该文件,它会成功读取其中的内容。
如果它可以执行echo那有什么问题?
【问题讨论】:
-
可能是权限问题。
killall通常需要 su/sudo 权限,如果不是你自己的进程。 -
很可能运行您网站的用户没有执行
kill和类似命令的权限。 -
是在 PHP 方面还是在服务器方面授予权限?
-
这种类型的保护有充分的理由......试着想象让任何用户在共享主机环境中运行任何命令将是多么灾难性:“今天我想休息一下。 .."
shell_exec("poweroff");) -
@Mikk3lRo 我知道这很冒险,但我想知道如何将某些命令列入白名单