文件包含漏洞——DVWA靶场file inclusion实验详解

本文详细讲解了文件包含漏洞的原理、形成原因,包括本地和远程两种类型。从LOW级别开始,通过代码审计和实际操作演示了漏洞利用过程,直至高危级别的白名单限制和复杂利用。最后,讨论了不可能利用的情况及相应的防范措施。


一.文件包含漏洞

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

2.文件包含漏洞的形成原因
随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变 量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校验或者校验被绕过就造成了文件包含漏洞。

3.文件包含漏洞简介
File Inclusion,文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。
require():可以包含文件,如果包含错了,直接报错并退出程序的执行
include():在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行
require_once():与require类似,区别在于当重复调用同一文件时,程序只调用一次
include_once():与include类似,区别在于当重复调用同一文件时,程序只调用一次

4.文件包含漏洞类型
本地文件包含漏洞与远程文件包含漏洞
远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。

5.类似
伪协议、file、phpinput://

参考文章:
https://blog.csdn.net/qq_41210745/article/details/103276849#high%E7%BA%A7%E5%88%AB%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90

二.实验环境

靶场IP:127.0.0.1

远程服务器(kali)IP:192.168.126.129

环境配置:在dvwa里第一次测试训练时,会在File Inclusion这里看到“The PHP function allow_url_include is not enabled”这个的报错提醒,这个提示告诉我们PHP函数allow_url_include还未启用.

在这里插入图片描述

查看对应PHP版本号

在这里插入图片描述

打开对应PHP版本号中的php.ini文件
修改allow_url_include,将原来的off改为on,保存,并重新刷新界面

在这里插入图片描述

重新刷新界面

在这里插入图片描述

三.LOW

1.代码审计

直接使用get方式传参,可以直接对资源进行访问,没有任何拦截

File Inclusion Source
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值