一、命令执行漏洞函数(可执行系统命令)
  原理:函数能够调用服务器操作系统命令,若前端传入的参数可控且没有做好过滤,攻击者就能注入恶意系统指令,读取文件、获取服务器权限。  

1. system():执行系统命令,直接打印输出结果
2. exec():执行外部命令,返回命令最后一行输出
3. shell_exec():执行shell命令,等价于反引号  `cmd` 
4. passthru():执行命令并把原始输出直接输出
5. popen() / proc_open():开启进程执行系统命令
一键获取完整项目代码
php

二、代码执行漏洞函数
原理:可以将普通字符串识别并运行成PHP代码,一旦外部参数可控,攻击者就能直接在服务器运行任意PHP

1. eval():最经典,将字符串解析为PHP代码执行
2. assert():PHP5/旧版可将字符串当作代码执行
3. preg_replace():PHP<7.0 搭配  /e  修饰符存在代码执行
4. create_function():可构造恶意PHP代码执行
一键获取完整项目代码
php

三、文件包含漏洞函数
 原理:加载外部文件并解析运行文件内PHP代码。文件路径可控时,会产生本地文件包含(LFI)、远程文件包含(RFI)漏洞。

1. eval():最经典,将字符串解析为PHP代码执行
2. assert():PHP5/旧版可将字符串当作代码执行
3. preg_replace():PHP<7.0 搭配  /e  修饰符存在代码执行
4. create_function():可构造恶意PHP代码执行
一键获取完整项目代码
php

四、文件操作相关高危函数
可控参数时触发本地/远程文件包含漏洞

原理:用于读写服务器文件,部分函数支持网络协议,参数无过滤会引发任意文件读取、SSRF、写入木马等风险

1. file_get_contents():读取文件,传入URL会触发SSRF漏洞
2. file_put_contents():写入文件,可控文件名可写入木马
3. fopen()、readfile():任意文件读取风险
一键获取完整项目代码
php

五、其他风险函数
 
1. unserialize():反序列化函数,存在PHP反序列化漏洞
2. mail():配置不当存在邮件注入漏洞

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐