我想使用PHP脚本从地址栏执行命令。
例如:
the-site.com/shell.php?exec=ls%20/
在浏览器中,我看到了这个结果:
bin
lib
etc
home
usr
答案 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