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”之一彻底杜绝了文件包含漏洞。

相关新闻

最新新闻

条件扩散模型合成组织病理图像:从原理到工程实践

条件扩散模型合成组织病理图像:从原理到工程实践

这次我们来看一个偏科研向的生成式 AI 项目:基于条件扩散模型(Conditional Diffusion Model)合成组织病理学图像。项目核心问题非常直接——能否用扩散模型生成接近真实病理切片的合成图像,以及这些合成图像在多大程度上可以用于数…

2026/8/28 0:59:07
YOLO手语识别实战:开箱即用数据集与模型训练部署指南

YOLO手语识别实战:开箱即用数据集与模型训练部署指南

简介:目标检测是计算机视觉的核心任务之一,旨在定位和识别图像中的物体。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并预测边界框和类别。这项技术在安防监控、自动驾驶、工业质检等领域具有重要价值。在辅助技术与人…

2026/8/28 0:54:06
企业AI Agent定制中的规则变更:改了一条为何带出新错

企业AI Agent定制中的规则变更:改了一条为何带出新错

一家零售企业的订单智能体,退货政策从"七天无理由"改成了"十五天"。运营团队更新了知识库里的政策文档,但智能体真正处理订单时走的那套规则逻辑没有同步改。结果智能体一边在回答里告诉用户"十五天内都可以退"&#xff0…

2026/8/28 0:49:06
TOPSIS综合评价法:原理、步骤与Python实战

TOPSIS综合评价法:原理、步骤与Python实战

1. 从“谁更优秀”说起:为什么我们需要TOPSIS法?在日常生活和工作中,我们经常面临“多选一”的难题。比如,公司要采购一批设备,有A、B、C三个供应商,每个供应商的产品在价格、性能、售后服务、交货周期等指…

2026/8/28 0:49:06
做海外市场,AI获客到底靠不靠谱?

做海外市场,AI获客到底靠不靠谱?

外贸AI获客系统真的有用吗 说实话,第一次听说AI获客这东西的时候,我内心是怀疑的。 近些年, 人工智能处于极度火爆的一种状态了, 从聊天机器人开始说起, 再到自动写作方面, 然后到图像生成领域, 有着一种感觉是似乎什么事物都能够借助AI去予以解决。于是…

2026/8/28 0:49:06
基于深度学习的人流量检测系统:YOLO目标检测与计数实战解析

基于深度学习的人流量检测系统:YOLO目标检测与计数实战解析

简介:计算机视觉中的目标检测技术,旨在让机器从图像或视频中定位并识别特定物体。以YOLO系列为代表的深度学习模型,凭借出色的精度与速度平衡,成为视频监控场景下行人检测的主流方案。通过迁移学习、非极大值抑制以及跨帧IOU关联等…

2026/8/28 0:49:06