Part 1 课程笔记
file inclusion概念
文件包含漏洞,是指当服务器开启alow_url_include选项时可以通过PHP的某些特性函数(include()、require()以及include_once()、require_once())去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。
类型
本地文件包含漏洞
当网站服务器本身存在恶意文件时,本地包含使用。
远程文件包含漏洞
远程文件包含漏洞是因为开启了PHP配置中的allow_url_fopen,开启该选项后服务器允许包含一个远程文件。
当服务器的PHP配置中,选项allow_url_fopen和allow_url_include为开启状态是,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致任意远程代码执行。
函数解析
include():执行include时才包含文件,找不到被包含文件时会产生警告,脚本将继续执行。
require():只有程序一运行就包含文件,找不到被包含的文件时会产生致命错误,并停止脚本。
include_once()和require_once():若文件中代码已被包含则不会再次被包含。
Part 2 课后习题
【解析】明显正确。
【解析】略
【解析】文件包含漏洞包括本地文件包含和远程文件包含。
【解析】略
【解析】常见的文件包含函数如下:
PHP: include(), include_once(), require(),require_once, fopen(), readfile() ….
JSP/Servlet: ava.io.File(),java.io.FileReader() …
ASP:include file, include virtual…