文件包含漏洞:
理论:
文件包含:
编写程序时把重复使用的函数写到单个文件中,在使用这些函数的时候,直接调用此文件,就无需再次编写,这种调用文件的过程叫做包含
文件包含漏洞:
开发人员希望代码更加灵活,所以会将被包含的文件设置为变量,用来动态调用。
文件包含漏洞产生的原因就是函数通过变量引入文件时,没有对传入的文件名进行合理的校验,从而操作了预想之外的文件,这样就导致了意外的文件泄露甚至恶意代码注入。
文件包含函数:
PHP中提供文件包含的函数:
include() 找不到被包含的文件时只产生警告
include_once() 与include()相似,区别是如果文件中的代码已经被包含,则不会再次包含
require() 找不到被包含的文件时会产生致命错误,脚本停止运行
require_once() 与require()相似,区别是文件中的代码已经被包含时,则不会再次包含
jsp\servlet提供的文件包含函数
ava.io.file()
java.io.filereader()
asp中提供的文件包含函数
include_file
include_virtual
文件包含漏洞分类:
本地文件包含:
被包含的文件存储在本地服务器
远程文件包含:
被包含的文件