DVWA(八):File Inclusion 全等级文件包含
文件包含:
开发人员将相同的函数写入单独的文件中,需要使用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称文件包含。
文件包含漏洞:
开发人员为了使代码更灵活,会将被包含的文件设置为变量,用来进行动态调用,从而导致客户端可以恶意调用一个恶意文件,造成文件包含漏洞。
所用到的函数:
require:找不到被包含的文件,报错,并且停止运行脚本。
include:找不到被包含的文件,只会报错,但会继续运行脚本。
require_once:与require类似,区别在于当重复调用同一文件时,程序只调用一次。
include_once:与include类似,区别在于当重复调用同一文件时,程序只调用一次。
主要特征:
?page=a.php
?home=b.html
?file=content
例如:
?file=../../../../etc/passwd
?page=file:///etc/passwd
?home=main.cgi
?page=http://www.a.com/1.php
http://1.1.1.1/../../../../dir/file.txt
举个例子:在DVWA的文件包含模块 low级别
这里有个1.txt文件,内容为 hello world

我们在URL中将参数修改为:?page=../1.txt,尝试包含这个1.txt文件:

可以看到爆出了文件的内容。
这里路径可以用绝对路径也可以用相对路径;文件保护使,不管文件是何类型都会优先尝试当作
php文件执行,如果有php代码会返回php代码的结果,如果没有php代码,会将文件内容回显出来。
一般文件包含的隐患就是可以爆出passwd文件中的账户密码信息或者config配置文件的内容。
low级别:
观察源码:
可以看到low级别对于参数page没有进行任何的过滤

用相对路径读取本地文件:
我们写一个php文件放在WWW目录下:


尝试包含此文件:可以看到我们写的php代码被直接运行并返回结果

也可以将参数构造为:
?page=http://目标IP/目标目录+目标文件 进行远程包含
Medium级别
观察源码:
这里使用了str_replace函数对http:// 、 https:// 、 ../ 、 ..\ 进行了过滤处理
可以使用双写http://或者绝对路径来绕过(例如:htthttp://p://)或者用..././来进行绕过
或者绝对路径和file协议。

High级别:

两个条件分别为file变量中不含有file,且不等于include.php就行
还可以继续用file协议进行绕过
例如:
?page=file///C:/phpstudy/WWW/1.txt
Impossible级别:
观察源码:

可以看到只要不是 include.php file1.php file2.php file3.php 都会报错,类似于白名单的做法
除了以上四个文件其余的文件都不可被包含,彻底杜绝了文件包含漏洞。
DVWA(八):File Inclusion 全等级文件包含的更多相关文章
- DVWA-全等级文件包含
DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...
- DVWA(九):File Upload 全等级文件上传
File Upload 文件上传,通常是由于对上传文件的类型没有进行严格的过滤.限制造成的,一般思路是 通过上传木马获取服务器的webshell(通过网络端口对网站服务器某种程度上的操作权限 也叫网站 ...
- DVWA之File Inclusion(文件包含)
目录 LOW: Medium: High Impossible LOW: 源代码: <?php // The page we wish to display $file = $_GET[ 'pa ...
- 【DVWA】File Inclusion(文件包含漏洞)通关教程
日期:2019-07-28 20:58:29 更新: 作者:Bay0net 介绍: 0x01. 漏洞介绍 文件包含时,不管包含的文件是什么类型,都会优先尝试当作 php 文件执行. 如果文件内容有 p ...
- DVWA-全等级文件上传
DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...
- DVWA之File Inclusion
File Inclusion File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),req ...
- 文件包含漏洞File Inclusion
文件包含漏洞 目录遍历漏洞在国内外有许多不同的叫法,也可以叫做信息泄露漏洞.非授权文件包含漏洞等. 文件包含分类 LFI:本地文件包含(Local File Inclusion) RFI:远程文件包含 ...
- DVWA File Inclusion 通关教程
File Inclusion 介绍File Inclusion,即文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数:include(),req ...
- PHP文件包含小结
协议 各种协议的使用有时是关键 file协议 file后面需是///,例如file:///d:/1.txt 也可以是file://e:/1.txt,如果是在当前盘则可以file:///1.txt 如果 ...
随机推荐
- SpringBoot:SpringCloud与SpringBoot兼容版本参(其它组件兼容情况)
SpringCloud --- Springboot 版本兼容 SpringCloud SpringBoot Edgware.SR5 >=1.5.0.RELEASE and <=1.5.2 ...
- Maven:Maven的project标签报错红线
作者在外网完成demo项目,把Maven的本地库打成压缩包放进内网时,Maven的project标签报错红线,且别的依赖不报错,同时Maven不引入本地仓库的依赖包. 解决方法: 进入自己的Maven ...
- 锁分析 Lock
锁分析 Lock NonReentrantLock ReadLock 共享锁 ReentrantLock 重入锁 排他锁 sync.lock 返回值为void,表示如无异常发生都认为锁获取成功 Fai ...
- python 两种排序方法 sort() sorted()
python中有两种排序方法,list内置sort()方法或者python内置的全局sorted()方法 区别为: sort()方法对list排序会修改list本身,不会返回新list.sort()只 ...
- Linux从头学03:如何告诉 CPU,代码段、数据段、栈段在内存中什么位置?
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- FTP服务—三种登录类型的配置方法
目录 一.部署 二.配置vsftpd 1.匿名用户登录配置 2.系统用户登录配置 3.虚拟用户登录配置 1. 创建虚拟用户名单文件 2. 生成虚拟用户口令认证文件 3. 创建FTP根目录及虚拟用户映射 ...
- Selenium启动Firefox示例(java版)
本文示例使用selenium启动Firefox,并将浏览器窗口最大化,在百度搜索框内输入"HelloWorld",最后点击搜索按钮. 源代码如下: 1 package com.se ...
- PAT乙级:1056 组合数的和 (15分)
PAT乙级:1056 组合数的和 (15分) 给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字.要求所有可能组合出来的 2 位数字的和.例如给定 2.5.8,则 ...
- 前端性能之LightHouse
"灯塔"(LightHouse)前端性能优化测试工具 (谷歌亲儿子) 一 灯塔v6/v7版是通过几种性能指标及不同权重来进行计分的 前端性能指标主要是根据PerformanceTi ...
- GhostScript 沙箱绕过(命令执行)漏洞(CVE-2019-6116)
影响范围 Ghostscript 9.24之前版本 poc地址:https://github.com/vulhub/vulhub/blob/master/ghostscript/CVE-2019-61 ...