DVWA靶场——File Inclusion(文件包含)笔记 File Inclusion文件包含是指当服务器开启了allow_url_include选项时通过一些PHP的特性函数比如include()require()include_once()和require_once()利用URL去动态包含文件此时如果没有对文件来源进行严格审查就会导致任意文件读取或者任意命令执行。这里我们先明确两个概念文件包含分类本地文件包含当被包含的文件在本地服务器时就叫做本地文件包含例../../../../../etc/passwd远程文件包含当被包含的文件在第三方服务器时就叫做远程文件包含例http://www.baidu.com 可以直接打开百度特性函数区别include() 当使用该函数包含文件时只有代码执行到include()函数时才将文件包含进来发生错误时只给出一个警告继续向下执行 include_once() 功能和include()相同区别在于当重复调用同一文件时程序只调用一次 require() require()与include()的区别在于require()执行如果发生错误函数会输出错误信息并终止脚本的运行 。使用require()函数包含文件时只要程序一执行立即调用文件而include()只有程序执行到函数时才调用 .require()在php程序执行前执行会先读入 require 所指定引入的文件使它变成 PHP 程序网页的一部份。 require_once() 它的功能与require()相同区别在于当重复调用同一文件时程序只调用一次low我们首先打开第一个文件发现文件名显示在URL中这就表明文件名是可控的。因此我们推测可以直接在URL中修改相关参数使用相对路径读取系统文件我是在windows系统下搭建的靶场环境如果读者在Linux环境下应该类似于../../../../etc/passwd这种成功读取返回了Windows的hosts文件内容包含文件的版权和说明信息127.0.0.1 localhost映射::1 localhostIPv6映射结论 确认可以从系统目录读取任意文件。源码分析?php // The page we wish to display //直接获取page参数未做任何过滤 $file $_GET[ page ]; ?这里可以看到注释作者已经告诉我们没做任何过滤Medium我们还是试试读取系统文件可以看到已经找不到这个文件了说明后端一定过滤了某些字段是我们的拼接失效了这里确实猜不到具体过滤了什么所以先看看源码?php // The page we wish to display $file $_GET[ page ]; // Input validation //将参数中的http:// https:// ../ ..\都替换成空 $file str_replace( array( http://, https:// ), , $file ); $file str_replace( array( ../, ..\ ), , $file ); ?将“http://”“https://”“../”“..\”全部替换成了空知道了其原理我们就可以尝试着拼接绕过。1.使用..././组合过滤前..././过滤后../2.双写绕过过滤前....//过滤后../3.URL编码绕过字符URL编码双重URL编码/%2F%252F\%5C%255C.%2E%252E我们就试试最简单的双写绕过没问题High这个级别的难度应该更大我们也先看看源代码?php // The page we wish to display $file $_GET[ page ]; // Input validation //文件名必须以file开始或只能为include.php if( !fnmatch( file*, $file ) $file ! include.php ) { // This isnt the page we want! echo ERROR: File not found!; exit; } ?这里是直接做了白名单限制匹配file*,以file开头的文件,或者匹配include.php如果不是以file开头的文件,或者不是include.php,就输出ERROR: File not found!。我们先不使用file伪协议直接使用绝对路径做拼接试试确实给我们跳转了not found那我们再试试使用file伪协议进行绕过跳转的内容和我们上面的一模一样大家可以看看大佬写的这篇文章提到了很多伪协议文件包含漏洞详解-CSDN博客Impossible?php // The page we wish to display $file $_GET[ page ]; // Only alLow include.php or file{1..3}.php //file变量只能为include.php、file1、file2、file3其中一个 if( $file ! include.php $file ! file1.php $file ! file2.php $file ! file3.php ) { // This isnt the page we want! echo ERROR: File not found!; exit; } ?Impossible难度的代码使用了白名单机制进行防护简单粗暴page参数必须为“include.php”、“file1.php”、“file2.php”、“file3.php”之一彻底杜绝了文件包含漏洞。

相关新闻

最新新闻

BetterGI:让你的原神游戏体验全面升级的智能辅助工具

BetterGI:让你的原神游戏体验全面升级的智能辅助工具

BetterGI:让你的原神游戏体验全面升级的智能辅助工具 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自…

2026/7/6 7:54:49
13DOF传感器与PIC18F56K42在机器人定位导航中的优化应用

13DOF传感器与PIC18F56K42在机器人定位导航中的优化应用

1. 项目背景与核心价值在移动机器人、无人机和各类智能穿戴设备快速发展的今天,精准的定位与导航能力已成为核心刚需。传统方案往往面临两大痛点:要么采用高精度但昂贵的专业级惯性测量单元(IMU),要么选择低成本但精度不足的消费级传感器。而…

2026/7/6 7:54:49
IIM-42652运动传感器与PIC18微控制器的工业应用解析

IIM-42652运动传感器与PIC18微控制器的工业应用解析

1. IIM-42652运动传感器的核心特性解析IIM-42652是TDK InvenSense推出的一款6轴智能工业级运动追踪设备,专为工业应用场景设计。这款MEMS器件在仅2.530.91mm的微型封装内集成了3轴陀螺仪和3轴加速度计,采用14引脚LGA封装,具有出色的抗冲击能力…

2026/7/6 7:54:49
BetterGI:原神PC端智能自动化辅助工具终极指南

BetterGI:原神PC端智能自动化辅助工具终极指南

BetterGI:原神PC端智能自动化辅助工具终极指南 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪…

2026/7/6 7:54:49
6DoF运动追踪:IIM-42652与MK24FN256VDC12硬件设计与算法实现

6DoF运动追踪:IIM-42652与MK24FN256VDC12硬件设计与算法实现

1. 项目背景与核心概念在运动追踪和姿态估计领域,从基础的3D姿态检测升级到完整的6自由度(6DoF)定位是一个质的飞跃。传统3D姿态通常只提供俯仰(pitch)、横滚(roll)和偏航(yaw&#…

2026/7/6 7:54:49
EMC电缆屏蔽层360°搭接实战:1cm猪尾巴导致30%辐射超标风险

EMC电缆屏蔽层360°搭接实战:1cm猪尾巴导致30%辐射超标风险

EMC电缆屏蔽层360搭接实战:1cm猪尾巴导致30%辐射超标风险引言在硬件开发与EMC测试领域,电缆屏蔽层的处理工艺往往被工程师视为"细枝末节",但正是这些看似微小的细节,可能成为产品认证路上的"隐形杀手"。想象一…

2026/7/6 7:49:49

月新闻