DVWA系列File Inclusion

File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。

1、打开file inclusion 页面

DVWA系列File Inclusion_第1张图片

2、打开view source,观察不同安全级别的代码的。可以发现以下信息。

Low File Inclusion Source


    $file = $_GET['page']; //The page we wish to display 

?>

观察LOW级别的文件上传代码发现仅仅是一句简单的页面展示代码。可以看到,服务器端对page参数没有做任何的过滤跟检查。

Medium File Inclusion Source


    $file = $_GET['page']; // The page we wish to display 

    // Bad input validation
    $file = str_replace("http://", "", $file);
    $file = str_replace("https://", "", $file);        


?>

将medium级别和low级别的比较可以发现,medium级别的代码增加了str_replace函数,对page参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..\”替换为空字符,即删除。

str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。(http://www.w3school.com.cn/php/func_string_str_replace.asp)

High File Inclusion Source

        
    $file = $_GET['page']; //The page we wish to display 

    // Only allow include.php
    if ( $file != "include.php" ) {
        echo "ERROR: File not found!";
        exit;
    }
        
?>

high级别的代码和medium级别的代码进行比较发现high级别简单粗暴,page参数必须为“include.php”否则报错。

3、进行测试。

首先打开页面调整安全级别到low,可以看到URL栏的page

DVWA系列File Inclusion_第2张图片

?page=../../../../../etc/passwd ,无论是windows系统还是linux,都有两个特殊目录,又因为

.     表示当前目录

../    表示当前目录的父目录(上一级目录)

“../”   越多越好,是因为可以此跳转到根目录

而passwd是普通用户也可以读取的文件

在URL栏进行测试后,有以下结果。

DVWA系列File Inclusion_第3张图片

有的情况下,可以不使用目录遍历漏洞,将URL栏直接改为/etc/passwd

调整安全级别到medium

输入///etc/passwd或者如下http://192.168.22.128/dvwa/vulnerabilities/fi/?page=file:///etc/passwd

DVWA系列File Inclusion_第4张图片

调整安全级别到high则

DVWA系列File Inclusion_第5张图片

 

 

 

 

 

 

 

你可能感兴趣的:(DVWA)