DVWA通关指南之搭建靶场

image-20250419172329815

📌 概括

DVWA即Damn Vulnerable Web Application,是用PHP和MySQL编写的开源Web应用程序,用于安全测试与学习。它有诸多优势,开源免费且易安装部署,还设有低、中、高和不可能四种安全级别,能改变漏洞利用难度。其包含多种常见Web安全漏洞,像注入、跨站脚本攻击、文件包含、暴力破解等。借助DVWA,初学者可了解漏洞原理与防范措施;安全专业人员能测试自身技能;在教学场景中,它也是助力学生掌握Web安全知识的实用工具。本文主要是带来Windows本地部署DVWA的教程。

🖥️ Windows本地部署DVWA靶场

1️⃣ 环境准备

🌐 源码下载:https://github.com/digininja/DVWA

image-20250419161440601

🌐 PHPStudy下载并且安装:https://www.xp.cn/windows.html

image-20250419161529918

2️⃣ 安装PHPStudy

⚙️本地安装PHPStudy

  • 双击安装包,选择安装路径根据提示无脑下一步即可

image-20250419161814179

📂 路径要求:

  • 避免中文路径和空格(推荐:D:\phpstudy_pro

image-20250419161951638

✅ 验证安装:

  • 安装完成后桌面应出现”小皮面板”图标,运行后主界面如下

image-20250419162026105

3️⃣ DVWA部署流程

📁 源码操作

  1. 解压下载的 ZIP 文件
  2. 重命名为DVWA
  3. 将DVWA夹移动到 phpStudy 根目录:D\phpStudy_pro\WWW(根据自己安装目录来)

image-20250419162520137

⚙️ 配置文件修改

  • 靶场的源码配置文件路径:DVWA\config\config.inc.php

    image-20250419162830359

  • 重命名config.inc.php.distconfig.inc.php

    image-20250419164110469

  • 修改config.inc.php配置文件

    image-20250419162836842

  • 编辑文件关键段落:

    // 数据库配置 (约第18行开始)
    $_DVWA[ 'db_database' ] = getenv('DB_DATABASE') ?: 'dvwa'; //数据库名
    $_DVWA[ 'db_user' ] = getenv('DB_USER') ?: 'root'; // 🔑 数据库连接用户名
    $_DVWA[ 'db_password' ] = getenv('DB_PASSWORD') ?: '123456'; // 🔑 数据库连接密码
    $_DVWA[ 'db_port'] = getenv('DB_PORT') ?: '3306'; //数据库连接端口

image-20250419163705776

⚠️ 注意:

  • 数据库连接用户名,数据库连接密码都可以在查看 phpStudy 数据库管理界面查看默认数据库密码记住下面修改配置需要用(可修改密码和添加数据库)

    image-20250419163929899

  • mysql数据库连接默认端口3306

4️⃣ 服务启动与验证

🚀 启动服务

  • 启动前置服务:必须开启服务:Apache+MySQL(如果报错可能是端口被占用)

    image-20250419164203954

🌐 访问验证

  • 浏览器输入:http://127.0.0.1/DVWA/

    image-20250419164224172

🔄 初始化

  • 点击底部 Create/Reset Database

    image-20250419164244225

  • 显示 Setup completed 即成功,重新访问http://127.0.0.1/DVWA/

    image-20250419164350995

🔐 登录凭证

  • 默认账号:admin

  • 默认密码:password

    image-20250419164423695

5️⃣文件包含模块报错解决方法

  • 登录成功后File Inclusion文件包含模块报错

    image-20250419165349206

🤔原因

  • DVWA 的 文件包含漏洞(File Inclusion) 实验需依赖远程文件加载功能。

  • allow_url_include=On 允许 PHP 执行如 include("http://外部URL/恶意脚本") 的远程代码,模拟攻击链。

🍔解决办法

  • 查看选择使用的版本信息http://127.0.0.1/dvwa/phpinfo.php

    image-20250419171219660

  • 打开 php.ini 文件

    路径:phpStudy安装目录\Extensions\php\版本号\php.ini

    (例如:D:\phpstudy_pro\Extensions\php\php5.4.45nts\php.ini)

    image-20250419171305031

    image-20250419171401346

  • 搜索并修改以下配置项:

    #允许包含远程文件
    allow_url_include = On
    #允许打开远程文件(需同步开启)
    allow_url_fopen = On

    image-20250419171639976

  • 重启Apache服务

    image-20250419171806580

  • 访问File Inclusion模块查看无报错就解决了

    image-20250419171714961

6️⃣命令注入(Command Injection)模块乱码解决方法

image-20250420171926422

  • 修改配置文件dvwaPage.inc.php

    路径:phpStudy安装目录\WWW\DVWA\dvwa\includes\\dvwaPage.inc.php

    如:D:\phpstudy_pro\WWW\DVWA\dvwa\includes\dvwaPage.inc.php

    image-20250420172038531

  • 搜索并修改以下配置项:

    Header( 'Content-Type: text/html;charset=GB2312' );     // UTF-8修改为GB2312
  • 修改前:

    image-20250420172606979

  • 修改后

    image-20250420172713458

  • 保存配置在命令执行模块验证一下,乱码就解决了

    image-20250420172842992

🚨 故障排查

  1. 数据库连接失败

    现象:红字提示 Access denied for user root@localhost

    解决方案:

    phpStudy 面板 » 数据库 » MySQL root密码 » 重置为root

    重新执行数据库创建操作

  2. 配置文件修改无效

    现象:页面仍显示 “.dist配置文件缺失”

    排查步骤:

    系统设置 » 文件夹选项 » 显示文件扩展名

    确认文件实际扩展名为 .php 而非 .php.dist