news 2026/4/15 18:30:52

dvwa靶场文件包含通关学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
dvwa靶场文件包含通关学习
  • 什么是文件包含

由于后端服务器对用户输入内容未作合理的校验处理,导致引入了程序之外的文件并执行

LOW

一、查看页面情况

  1. 页面中存在引入其他文件的内容,那猜测存在文件包含漏洞
  2. page后输入不存在的文件名,让页面报错显示出当前网页的位置

  1. 这里为了体现出成功了,我在靶机的vulnerabilities目录下创建了phpinfo.png图片文件
  2. 若页面输出了php有关的信息那就表明成功了
# 这是个图片后缀,其中的内容是<?phpechophpinfo()?>
二、具体操作
  1. 在page后输入../phpinfo.png

页面成功将图片当作php代码执行,那就证明文件被成功引入当作php代码执行

三、代码审计
<?php$file=$_GET['page'];?>
  1. 后端直接读取了用户输入的内容,未作任何过滤校验处理
总结:后端未作任何防护,存在文件包含漏洞

Medium

一、页面无变化

通过查看不存文件看网站位置,之后输入刚才的路径查看

http://192.168.75.1/DVWA/vulnerabilities/fi/?page=../phpinfo.png
  1. 页面报错,首先想到的是过滤了一些内容,输入了../phpinfo.png,那猜测是过滤了..,/等字符
  2. 尝试双写绕过输入....//phpinfo.png

  • 发现成功绕过
二、代码审计
<?php$file=$_GET['page'];$file=str_replace(array("http://","https://"),"",$file);$file=str_replace(array("../","..\\"),"",$file);?>
  1. 这里使用了str_replace()函数,将数组中的内容换成空格,从而过滤掉恶意输入内容
  2. 这里只是做了单次过滤,可以被前端双写绕过
总结:后端对用户输入做替换,将包含有恶意的字符过滤成空格操作,但页面还是存在文件包含漏洞

High

一、查看页面没啥变化
  1. 直接输入文件路径后看变化
  2. 发现无论如何操作页面都提示找不到文件
二、由于这是比较老的靶场,那它是用的php语言版本应该是比较早期的(存在有很多问题)可以使用%00截断的方式来尝试绕过
  • %00截断原理(php5.3一下的版本有):

    • %00url编码后是空字符(表示无),在php的底层原理中(基于c语言的)空字符白表示结束的意思
    • 那整条语句就是,当php识别到%00后面的内容后,php语言会将后面的内容忽略,直接执行下一条指令
  • 那尝试输入内容../phpinfo.png%00

!

  1. 这里发现了一个使用了函数fanmatch()函数
  2. fanmatch(a,b)函数简单来说,就是判断b是否包含有a内容
  3. 结合页面给出的几个文件判断,都有相同的file,php等字段,那就禅师看看
?page=file../phpinfo.png

  • 页面有显示,且phpinfo函数正常执行
三、代码审计
$file=$_GET['page'];if(!fnmatch("file*",$file)&&$file!="include.php"){// This isn't the page we want!echo"ERROR: File not found!";exit;
  1. 可以看出直接获取用户传入的信息进行判断
  2. 通过函数fnmatch()函数限定查找文件的范围
总结:后端只要通过fnmatch()函数来判断用户输入内容的合法性和正确性,忽略了因php版本低导致的漏洞问题

Impossile

一、代码审计
$file=$_GET['page'];$configFileNames=['include.php','file1.php','file2.php','file3.php',];if(!in_array($file,$configFileNames)){echo"ERROR: File not found!";exit;
  1. 后端做了白名单过滤,严格控制访问的文件
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 2:45:11

ServiceWorker 通信

与专用工作者线程和共享工作者线程一样&#xff0c;服务工作者线程也能与客户端通过postMessage()交换消息。 实现通信的最简单方式是向活动工作者线程发送一条消息&#xff0c;然后使用事件对象发送回应。 发送给服务工作者线程的消息可以在全局作用域处理&#xff0c;而发送回…

作者头像 李华
网站建设 2026/4/8 6:03:09

【课程设计/毕业设计】基于springboot的非遗文化传承与推广文创交易平台系统【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/3/31 0:08:10

【课程设计/毕业设计】基于SpringBoot+Vue的全面医院管理系统设计基于SpringBoot+Vue技术的医院运营管理系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/15 13:04:08

Java计算机毕设之基于springboot的非遗文化传承与推广平台系统基于SpringBoot的非遗产品交流销售平台的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/13 23:34:14

计算机Java毕设实战-基于SpringBoot+Vue技术的医院运营管理系统的设计与实现现代化医院综合管理系统设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华