【文件包含】远程文件包含漏洞利用

文件包含原理

文件包含漏洞产生的原因是在通过PHP函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。几乎所有的脚本语言都会提供文件包含的功能,但文件包含漏洞在PHP WebApplication中居多,而在JSP、ASP、ASP.NET程序中却非常少,这是有些语言设计的弊端。在PHP中经常出现文件包含漏洞,但并不意味着其他语言不存在。

文件包含函数

  • include():找不到被包含文件时会产生警告(E_WARNING);
  • include_once():与include ()类似,代码已经被包含则不会再次包含require():找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR)
  • require_once(): 与require ()类似,代码已经被包含则不会再次包含

利用条件

(1 ) include等函数通过动态执行变量的方式引入需要包含的文件

(2)用户能控制该动态变量

文件包含分类

  • 文件包含漏洞可以分为LFI (Local File Inclusion,本地文件包含)和RFI(Remote File Inclusion,远程文件包含)两种。而区分二者最简单的办法就是通过查看php.ini中是否开启allow_url_include。如果开启就有可能包含远程文件。
  • 远程文件包含需要php.ini中allow_url_include=on,allow_url_fopen = On。在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。

远程文件包含漏洞复现

1.查看配置是否开启。

本地文件包含漏洞

如果文件有代码,会将包含文件以php文件的类型解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值