文件包含漏洞
文件包含漏洞
一、文件包含漏洞概述
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某个函数的时候,直接调用该文件,无需再次编写,这种调用文件的过程通常称为包含。
而程序开发人员都希望代码更加灵活,所以通常会把被包含的文件设置为变量,来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用任意文件,造成文件包含漏洞。
几乎所有的脚本语言都会提供文件包含功能。文件包含漏洞在PHP Web Application中居多,在JSP/ASP/ASP。net程序中比较少。
二、文件包含PHP函数
1 | include("") / include "" #如果包含文件不存在,产生警告,后续语句仍然执行 |
三、漏洞产生的原因
1、Web应用实现了动态包含
2、动态包含的文件路径参数,客户端可控
四、PHP相关配置
1、关于PHP操作远程文件的配置(远程文件包含):
1 | allow_url_fopen=On/Off |
五、文件包含漏洞的特点
使用PHP文件包含函数包含的文件,无论该文件是什么拓展名或者类型,都会作为php文件进行解析。
六、文件包含漏洞实验
1、00截断的利用(PHP<5.3.4 && 关闭魔术引号配置 magic_quotes_gpc)
1 |
|