一、漏洞描述程序在引用文件的时候,引用的文件名,用户可控的情况,传入的文件名没有经过合理的校验或者校验不严,从而操作了预想之外的文件,就有可能导致文件泄露和恶意的代码注入。程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这重文件调用的过程一般被称为文件包含。程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。几乎所有脚本语言都会提供文件包含的功能,但文件包含漏洞PHP Web Application中居多,而在JSP、ASP、ASP.NET程序中却非常少,甚至没有,这是有些语言设计的弊端。二、常见文件包含函数三、漏洞危害1、敏感信息泄露2、拒绝服务攻击3、执行恶意代码4、配合文件上传,扩大危害一般来说,远程文件包含漏洞危害更大。四、利用前提1、web应采用include()等文件包含函数通过动态变量的方式引入需要包含的文件2、用户能够控制该动态变量五、两个关键选项Allow_url_fopen = on是否允许将URL(HTTP,H
易水哲
一个什么都会一点的白帽子