赞
踩
(1) .概述
程序开发人员通常会把可重复使用的函数写在单个文件中
在使用某个函数的时候,直接调用此文件,无需再次编写,
这种调用文件的过程称为文件包含
程序开发人员都希望代码更加灵活,所有通常会把
被包含的文件设置为变量,进行动态调用,正由于这阵灵活性
导致客户端可以调用任意文件,造成文件包含漏洞
(2) .php中文件包含
函数 区别
include() 文件包含失败时会产生警告
,脚本继续执行
include_once() 与inlude()功能一样
该文件中已经被包含过
则不会再次包含
文件只会包含一次
require() 文件包含失败时产生错误
结束脚本执行
require_once() 与require()功能一样,
该文件中已经被包含过
则不会再次包含
文件包含一次
.用法
include '/路径/function_name' ;
include ('/路径/function_name');
require '/路径/function_name'
.漏洞产生原因
1.web应用实现了动态包含
2.动态包含的文件路径参数,客户端可控
'例如'
$path=$_GET['path'];
include $path
.相关配置
文件包含有本地包含和远程文件包含之分 远程文件包含利用HTTP,FTP,PHP伪协议 远程加载文件 配置php.ini 文件包含开关 allow_url_fopen=On/Off 远程文件包含开关 allow_url_include=Off/On 'php伪协议' php: .漏洞原理 php提供的文件包含功能 @ 无视文件扩展名读取文件 包含文件时,会读物文件的源码,包括图片文件 ?path=1.jpg @无条件解析php代码 文件包含在读取文件源码时, 如果遇到符合php语法 得代码,会无条件执行 如将 info.php 改名为 info.rar 为图片木马提供了一种引用方法 '空字节安全绕过' (已经淘汰) php版本小于 5.3.4 并且需要关闭 magic_quotes_gpc=Off
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。