来自地址栏的PHP Shell exec

时间:2014-01-02 08:46:39

标签: php linux shell browser ssh

我想使用PHP脚本从地址栏执行命令。

例如:

the-site.com/shell.php?exec=ls%20/

在浏览器中,我看到了这个结果:

bin
lib
etc
home
usr

1 个答案:

答案 0 :(得分:1)

你可以做到这一点,但我建议不要这样做 - 你正在为自己打开各种各样的麻烦。

考虑不小心发送rm -rf /

如果您必须执行此操作,请使用(白色)经过验证的命令列表,并仅允许您的脚本执行这些命令,然后仅限制访问脚本的内部网络入口点

我会为你发布一些代码,但说实话,我担心你只是在没有测试的情况下使用它 - 或者更重要的是理解它。

基本上,你正在寻找类似的东西: -

$whitelist = array(/* list of allowed commands */);

if (/* command in whitelist */) {
    execute();
}

您确实需要在某些时候将参数传递给脚本,因此请确保您验证并escape。这是一篇有趣的文章,其中包含一些指示和链接供您阅读: -

Best way to sanitize exec command with user inserted variables