文件包含漏洞

文件包含漏洞是由于PHP的include()等函数允许动态调用文件,若未正确过滤用户输入,可能导致恶意文件执行。文章详细介绍了本地文件包含、远程文件包含、伪协议利用方式及常见绕过技巧,并提出了防范措施,包括文件过滤、协议限制和路径安全控制。
摘要由CSDN通过智能技术生成

关于文件包含漏洞,我觉得和ssrf漏洞有点儿像,ssrf漏洞是通过curl()函数获取信息但是没有进行过滤,从而访问到内网造成危害,文件包含漏洞则是通过include()函数获取文件,攻击者输入敏感文件导致敏感文件也被输出从而产生危害。

原理

开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无需再次编写,这种调用文件的过程一般被称为包含。

为了使代码更加灵活,通常会将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。

PHP中提供了四种文件包含函数:

include()//只有程序执行到include()函数时,才包含文件,发生错误代码也继续向下执行

include_once()//与include()相同,但是重复调用同一个文件时,程序只调用一次

require()//与include()区别在于包含文件如果发生错误,程序则终止执行

require_once()//与include_once和include的区别相同

文件包含类型

本地文件包含

当本地存在敏感文件时,包含本地的文件,就是本地文件包含(就是字面意思)
例如下面有一个含有文件包含的PHP文件
<?php
	$file=_GET['file'];
	if(isset($file)){
   
		include
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值