什么是文件包含漏洞
1:随着网站的业务的需求,程序开发人员一般希望代码更加灵活,所以将被包含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校检或者校检被绕过就造成了文件包含漏洞。
经常见到的函数
1:include()当前使用该函数包含文件时,只有代码执行到include()函数时将文件包含起来,发生错误时给出一个警告,然后继续执行语句
2,include_once()功能和include()相同,区别当重复调用一个文件时,程序只调用一次
3:reguire()执行如果发生错误,函数会输出错误信息,并终止脚本的运行
4:require_once()功能与require()相同区别在于当重复调用一个文件时,程序只调用一次
5:nighcight_file(),show_source()函数对文件进行语法高亮显示,通常能看到源代码
6:readfile(),file_get_contents()函数读取一个文件,并写入输出缓冲
7:fopen(),打开一个文件或者url
几乎所有的脚本语言中都提供文件包含的功能,但文件包含漏洞在php中居多,而在jsp\ASP\ASP.NETC 程序中非常少,甚至没有文件包含漏洞的存