File Inclusion(文件包含)

File Inclusion

前言

我觉得还是先介绍下,因为涉及到php函数,自己不会 世界最好的语言 ,所以引用他人的优秀的博客来装饰下我这简陋的博客

文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。

文件包含分为两类:

本地文件包含 当被包含的文件在服务器本地时,就形成本地文件包含;

远程文件包含 当被包含的文件在第三方服务器时,叫做远程文件包含

该漏洞涉及到php常见包含文件函数包括:

include()

当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时只给出一个警告,继续向下执行

include_once()

功能和include()相同,区别在于当重复调用同一文件时,程序只调用一次

require()

require()与include()的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行 。使用require()函数包含文件时,只要程序一执行,立即调用文件,而include()只有程序执行到函数时才调用 .require()在php程序执行前执行,会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。

require_once()

它的功能与require()相同,区别在于当重复调用同一文件时,程序只调用一次

白帽子挖洞—文件包含(File Inclusion )

我来说下我对上面的理解吧,php后端,要想执行文件包含这骚操作,allow_url_include必须开启,然后利用上面提到的4个函数,这些函数对文件不会检测(检测也不该由这些函数来做),所以我们能将我们想要用的文件名交给它解析就很好了,来获取我们需要的信息(感觉和溢出有点像啊,也是一些东西没做检测,然后攻击者通过构造payload来让目标执行指定的文件从而实现攻击)。
然后远程执行就是allow_url_fopen也

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值