1、漏洞描述
文件包含是指程序代码在处理包含文件的时候没有严格控制。导致用户可以构造参数包含远程代码在服务器上执行,并得到网站配置或者敏感文件,进而获取到服务器权限,造成网站被恶意删除,用户和交易数据被篡改等一系列恶性后果。主要包括本地文件包含和远程文件包含两种形式,由于开发人员编写源码,开放着将可重复使用的代码插入到单个的文件中,并在需要的时候将它们包含在特殊的功能代码文件中,然后包含文件中的代码会被解释执行。由于并没有针对代码中存在文件包含的函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端解释执行。文件包含攻击中WEB服务器源码里可能存在inlcude()此类文件包含操作函数,可以通过客户端构造提交文件路径,是该漏洞攻击成功的最主要原因。
Web服务器会尝试从“根目录”或“Web文档根目录”,也就是文件系统的一个文件夹中,区分属于用户的文件。攻击者可以读取他们通常无法读取的目录或文件、访问Web文档根目录以外的数据,或包含外部网站的脚本和其他类型的文件。
2、检测条件
1、Web应采用include()等文件包含函数通过动态变量的方式引入需要包含的文件
2、用户能够控制该动态变量
3、检测方法
1、常见的文件包含漏洞,出现在以PHP语言开发的网站中,例如以下代码采用了指定用户的名称,并将该名称包