尝试使用shelll_exec执行二进制文件

时间:2016-10-05 13:46:17

标签: php bash

它可能更像是一个以bash为导向的问题,但它涉及安全问题。

所以我试图从我可以使用Php(和 shell_exec 函数)访问的远程计算机上下载二进制文件( nc ),我找了 wget 并在 / usr / ports / ftp / 存储库中找到它,并具有以下权限:

drwxr-xr-x  3 root  wheel   512 Dec 27  2013 wget

所以,你可以看到每个人都应该能够执行这个。所以,我使用shell_exec执行了以下操作:

<?php $output = shell_exec("/usr/ports/ftp/wget"); echo "<pre>$output</pre>"; ?>

但是当我通过服务器执行此脚本时没有任何追加,这很奇怪,因为 shell_exec(ls&#34;); 有效(它可以看到它的标准输出)和&#34; LS &#34;二进制文件在 / bin 中作为exaclty相同的权利

有什么建议吗?

p.s:所有这些都发生在培训实验室当然

1 个答案:

答案 0 :(得分:0)

这看起来像BSD机器 - / usr / ports / ftp / wget是一个目录(参见ls输出模式中的d)。我怀疑,wget实际上并未安装在该计算机上,而您正在尝试执行目录。

请尝试fetch(/ usr / bin / fetch)。