DVWA靶场文件包含(File Inclusion)通关教程(high级别)

server/2024/12/5 3:40:02/

目录

  • DVWA 靶场建立
  • 闯关

DVWA__2">DVWA 靶场建立

需要的东西:

phpStudy
链接: phpStudy
提取码:0278

DVWA-master
链接: DVWA靶场
提取码:0278

建议在虚拟机中操作,以防数据库冲突,下面有解释

  1. 安装 phpstudy,然后打开 ApacheMySQL

QQ_1732805175726

  1. 访问 127.0.0.1 ,如果显示站点创建成功就成功了

QQ_1732805262644

  1. 解压 DVWA 的压缩包,然后将整个目录放到 phpstudyWWW 目录下,然后在 phpstudy 主页点击创建网站,然后填写域名信息,比如我的设置为 demo.dvwa.com ,然后根目录选择为刚刚放置在 WWW 目录下的 DVWA 目录

QQ_1732805509116

  1. 然后在数据库界面创建数据库

QQ_1732805617647

  1. DVWA 中的配置文件中的数据库信息修改为当前创建的数据库,找到 DVWA 中的对应文件,比如我的 C:\phpstudy_pro\WWW\DVWA\config 中的 config.inc.php 文件(如果找到的是 config.inc 说明电脑中隐藏了文件拓展名,建议去打开它),然后右击以记事本打开,修改对应的信息,比如我的

QQ_1732805870323

  1. 然后在浏览器中输入 demo.dvwa.com ,打开网站,如果出现这个界面,点击 create/Reset Database ,如果爆以下错误,说明上述操作中数据库没配置好

QQ_1732805967707

  1. 如果确认了上述数据库没有对应失败,还是错误,说明本地数据库冲突了,也就是可能原本电脑本地中有数据库,而 phpstudy 安装的时候也会装数据库,可能就导致冲突,无法正确识别到对应的数据库,所以建议在虚拟机中操作也是这个原因,否则就删除本地的 Mysql 这肯定是不愿希望的

  2. 如果上述没问题,就进入了以下界面,输入 adminpassword 即可登录成功

QQ_1732806344801

闯关

  1. 首先调整 DVWA 靶场安全级别为 High

QQ_1732720739961

  1. 找到侧边的 File Inclusion ,然后点击右下角的查看源代码

QQ_1732806427906

  1. 查看源代码
<?php// The page we wish to display
$file = $_GET[ 'page' ];// Input validation
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {// This isn't the page we want!echo "ERROR: File not found!";exit;
}?>

解析代码

$file = $_GET['page'];
  • 用户通过 URL 请求传递参数,例如 ?page=file1.php
  • 变量 $file 被赋值为 GET 参数中键为 page 的值
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {// This isn't the page we want!echo "ERROR: File not found!";exit;
}
  • 条件检查是否 $file 的值等于指定的文件名之一
  • 如果 $file 不是以文件名以 file 开头,或者 include.php ,这两个都不满足,则视为非法文件:
    • 输出错误信息:ERROR: File not found!
    • 使用 exit 终止脚本执行
  1. 由于考虑到上述检测匹配需要以 file 开头,所以我们需要一个 file 开头且可以访问的一个文件,这就想到在 Windows 平台下可以使用 file 协议绕过防护策略,使用它访问本地文件系统,比如正常访问的

QQ_1732806887566

  1. 了解完这些后我们开始进行攻击,这里我们将 url 进行构造 "file:///[绝对路径]" 的格式得到 phpinfo.php
  2. page= 后面的 include.php 修改为实际的 file:///... 内容,如我修改后变为了 ?page=file:///C:\phpstudy_pro\WWW\DVWA\phpinfo.php\ 修改为 / 也是可以的

QQ_1732967369721

  1. 然后回车,会出现这个界面

QQ_1732807168810

  1. 可以看出攻击成功了,利用规则获取了 phpinfo.php 文件
  • phpinfo 页面包含了大量的关于 PHP 的当前状态环境信息、PHP 的编译选项和扩展、操作系统版本信息、服务器系统变量信息、Web 应用物理路径信息等等,利用这些信息配合其他漏洞可能导致网站被渗透或者系统提权等危害

http://www.ppmy.cn/server/147455.html

相关文章

量化交易系统开发-实时行情自动化交易-8.8.同花顺 SuperMind 平台

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来会对于同花顺 SuperMind 平台介绍…

Git中HEAD、工作树和索引的区别

在Git版本控制系统中&#xff0c;HEAD、工作树&#xff08;Working Tree&#xff09;和索引&#xff08;Index&#xff09;是三个非常重要的概念&#xff0c;它们分别代表了不同的状态或区域&#xff0c;下面我将对这三个概念进行详细的解释。 HEAD 定义&#xff1a;HEAD是一…

KubeBlocks v0.9.2发布啦!支持容器镜像滚动更新、MySQL支持Jemalloc...快来升级体验更多新功能!

KubeBlocks v0.9.2 正式发布啦&#xff01;本次发布包含了一些新功能、关键的错误修复以及各种改进。以下是详细的更新内容。 升级文档 v0.9.2 升级方式与 v0.9.1 相同&#xff0c;替换版本即可哦&#xff5e; https://kubeblocks.io/docs/release-0.9/user_docs/upgrade/up…

第八章:标准库和工具 2.开发工具 --Go 语言轻松入门

第八章&#xff1a;标准库和工具 2.开发工具 --Go 语言轻松入门 Go 语言&#xff08;也称为 Golang&#xff09;是一种由 Google 开发的开源编程语言&#xff0c;它以其简洁、高效和并发支持而闻名。开发 Go 语言应用程序时&#xff0c;有许多工具和集成开发环境&#xff08;I…

【C++】入门【五】

本节目标 一、C/C内存分布 二、C语言中动态内存管理方式 三、C中动态内存管理 四、operator new与operator delete函数 五、new和delete的实现原理 六、定位new表达式(placement-new) 七、常见面试题 一、C/C内存分布 一个程序占用的内存主要有以下几部分栈区&#xff08;stac…

[Redis#9] stream | geospatial | HyperLogLog | bitmaps | bitfields

目录 1.Streams 事件驱动机制 事件 JS (做界面) 事件是干什么的&#xff1f; 2.geospatial 3.HyperLogLog 4.bitmaps 5.bitfields redis 常用的 data types 有 10 种&#xff0c;我们前面已经讲到了 5 种&#xff0c;这篇文章将对剩下的 5 种特殊数据结构进行讲解~ 1.…

【鸿蒙开发】第二十三章 Network 网络服务

目录​​​​​​​ 1 简介 1.1 约束与限制 2 HTTP数据请求 2.1 request 接口开发步骤 2.2 requestInStream接口开发步骤 3 WebSocket连接 3.1 开发步骤 4 Socket 连接 4.1 Socket 连接主要场景 4.1.1 TCP/UDP Socket进行数据传输 4.1.2 TCP Socket Server 进行数…

NLP 的研究任务

自然语言处理&#xff08;Natural Language Processing, NLP&#xff09; NLP 的研究任务 自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;1. **机器翻译**2. **情感分析**3. **智能问答**4. **文摘生成**5. **文本分类**6. **舆论分析**7. **知识图谱*…