文件包含漏洞介绍(笔记)

本文介绍了PHP中的文件包含漏洞,包括其产生原因、分类、前提条件、危害以及Windows和Linux系统的敏感文件。还讨论了利用PHP封装协议读取文件的方法和远程包含的条件,并给出了漏洞修复的建议,如白名单过滤和禁止特定字符。
摘要由CSDN通过智能技术生成

什么是文件包含?

开发者在开发PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当做PHP来执行,这会为开发者节省大量的时间。
为了更好地使用代码的重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码。

文件包含漏洞如何产生的?

文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。
php.ini设置中allow_url_include=on/off 开关
开启意味可能存在远程包含(源程序代码可能存在过滤等情况),关闭意味不存在远程包含。
大多数web语言都可以使用文件包含操作,其中php语言所提供的文件包含功能太强大,太灵活,所以包含漏洞经常出现在php语言中。

漏洞分类:

根据包含的位置不同分为:
本地包含(LFI):包含本地的文件,当作脚本代码执行
远程包含(RFI):包含远程上的一些文件,当作脚本代码去执行

文件包含漏洞的前提:

服务器必须开启allow_url_include函数
在PHP中主要有以下几个包含函数
include
include_once
require
require_once
包含函数介绍:
include():
当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时只给出一个警告&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值