background image

PHP 中的危险函数全解析

在编译

 

php

 时,如无特殊需要,一定禁止编译生成 CLI 命令行模式的 PHP 解析支持。可在

编译时使用

 –disable-CLI。一旦编译生成 CLI 模式的 PHP,则可能会被入侵者利用该程序建

立一个

WEB Shell 后门进程或通过 PHP 执行任意代码。

phpinfo()
功能描述:输出

 PHP 环境信息以及相关的模块、WEB 环境等信息。

危险等级:中
passthru()
功能描述:允许执行一个外部程序并回显输出,类似于

 exec()。

危险等级:高
exec()
功能描述:允许执行一个外部程序(如

 UNIX Shell 或 CMD 命令等)。

危险等级:高
system()
功能描述:允许执行一个外部程序并回显输出,类似于

 passthru()。

危险等级:高
chroot()
功能描述:可改变当前

 PHP 进程的工作根目录,仅当系统支持 CLI 模式 PHP 时才能工作,

且该函数不适用于

 Windows 系统。

危险等级:高
scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中
chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高
chown()
功能描述:改变文件或目录的所有者。
危险等级:高
shell_exec()
功能描述:通过

 Shell 执行命令,并将执行结果作为字符串返回。

危险等级:高

PR

oc_open()

功能描述:执行一个命令并打开文件指针用于读取以及写入。
危险等级:高
proc_get_status()
功能描述:获取使用

 proc_open() 所打开进程的信息。

危险等级:高
error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全备注:在某些版本的

 PHP 中,可使用 error_log() 绕过 PHP safe mode,

执行任意命令。
危险等级:低
ini_alter()