qq5464642 发表于 2025-2-7 00:25:36

DVWA靶场File Inclusion (文件包含) 漏洞所有级别通关教程及源码解析

文件包含

文件包含漏洞(File Inclusion Vulnerability)是一种常见的网络安全漏洞,主要出现在应用程序中不安全地处理文件路径时。攻击者可以利用此漏洞执行恶意文件,或者访问不该被访问的文件
1. low

有3个页面

随便点击一个,可以在url处发现传参点

访问:http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file4.php ,可以看到下面的提示

远程文件包含


本地文件包含


源码审计

<?php// The page we wish to display$file = $_GET[ 'page' ];?>可以看到没有做任何过滤
2. medium

访问file4.php,依然可以访问

访问?page=../../phpinfo.php发现没有回显,可以确定是被过滤了
尝试双写绕过,成功绕过

..././ <=> ../源码审计

<? php// 显示的页面$file = $_GET['page'];// 输入验证$file = str_replace(array("http://", "https://"), "", $file);$file = str_replace(array("../", "..\\"), "", $file);?>将http://; https://; ../ ; ..\替换为了' ' ,可以利用双写绕过过滤
3. high

访问1.php看看报错信息

直接文件读取

源码审计

<?php// 显示的页面$file = $_GET['page'];// 输入验证if (!fnmatch("file*", $file) && $file != "include.php") {    // 这不是我们想要的页面!    echo "错误:文件未找到!";    exit;}?>要求了参数必须以file开头,即?page=file.......... ,否则就会报错
4. impossible

源码审计

<?php// 我们希望显示的页面$file = $_GET['page'];// 只允许 include.php 或 file{1..3}.phpif ($file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php") {    // 这不是我们想要的页面!    echo "错误:文件未找到!";    exit;}?>只允许访问include.php 或 file{1..3}.php页面,其他页面全部过滤
页: [1]
查看完整版本: DVWA靶场File Inclusion (文件包含) 漏洞所有级别通关教程及源码解析