旁路禁用DL功能PHP Linux

时间:2016-09-04 09:25:29

标签: php linux function

我在具有用户权限的Linux red-hat服务器上有一个PHP shell。我正在尝试对根目录进行符号链接,但在PHP中使用ln -s甚至symlink()仍然是不可能的。

我已经看到PHP DL功能已被禁用,如下图所示:

image

我在当前目录中使用 php.ini 包含此字符串:

safe_mode=OFF
disable_functions=NONE

它没有禁用,那该怎么办?

1 个答案:

答案 0 :(得分:1)

自PHP 5.3(以及php中的7.0)以来,除了CLI SAPI 之外,所有PHP SAPI()都删除了dl函数以及动态加载PHP扩展的功能。 FPM)。

  

警告此功能已从PHP 5.3.0中的大多数SAPI中删除,并已从PHP 7.0.0中的PHP-FPM中删除。

     

Source php.net/dl

因此,除非您运行PHP 5.2,否则Web SAPI中的该功能没有用处。无论如何,您不应该尝试在Web环境中动态加载扩展。它通常没有任何意义,并且可能导致许多边缘情况。大多数边缘情况在CLI环境中都没有实际意义,但对Web环境很重要。

至于覆盖disable_functions,您要确保编辑正确的php.ini文件并从正确的SAPI检查phpinfo()。请记住,从CLI和Apache / web运行的PHP是两个不同的二进制文件,可以加载不同的配置文件。因此,您应该查看正确的phpinfo(),以找到要编辑的“已加载配置”文件。您始终需要重新启动PHP才能使这些已加载的配置生效。请记住,dl()可能会从当前支持的任何PHP版本中删除。