文件包含漏洞
开发人员将相同的函数写入单独的文件中,需要使用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称文件包含;
开发人员为了使代码更灵活,会将被包含的文件设置为变量,用来进行动态调用,从而导致客户端可以恶意调用一个恶意文件,造成文件包含漏洞;在PHP中经常出现文件包含漏洞;
常用函数
include():找不到被包含文件,报错,但会继续运行脚本;
include_once():与include()类似,区别在于,当重复调用同一文件时,程序只调用一次;
require():找不到被包含文件,报错,并且停止运行脚本;
require_once():与require类似,区别在于,当重复调用同一文件时,程序只调用一次;
特征
?page=
?file=
?home=
目录遍历与文件包含的区别
目录遍历是可以读取web目录以外的其他目录,根源在于对路径访问权限设置不严格,针对于本系统;
文件包含是利用函数来包含web目录以外的文件,分为本地包含和远程包含;
文件包含的分类
1、本地文件包含:可以包含本地文件,在条件允许时甚至能执行代码