DVWA 靶场搭建:Windows11(phpstudy 搭建)(步骤 + 截图 + 常见问题)

目录

合规免责声明

思维导图(细化到子步骤)

[一、前期准备(知识点边界:环境适配 + 权限网络配置)](#一、前期准备(知识点边界:环境适配 + 权限网络配置))

[1.1 系统环境要求](#1.1 系统环境要求)

[1.2 软件下载清单](#1.2 软件下载清单)

[1.3 管理员账户启用与 UAC 权限调整](#1.3 管理员账户启用与 UAC 权限调整)

[1.4 防火墙端口放行](#1.4 防火墙端口放行)

[二、phpstudy 安装与核心配置(知识点边界:安装流程 + 组件配置 + 服务验证)](#二、phpstudy 安装与核心配置(知识点边界:安装流程 + 组件配置 + 服务验证))

[2.1 phpstudy 下载与安装](#2.1 phpstudy 下载与安装)

[2.2 组件选择与安装](#2.2 组件选择与安装)

[2.3 端口配置与冲突检测](#2.3 端口配置与冲突检测)

[2.4 服务启动与状态验证](#2.4 服务启动与状态验证)

[2.5 数据库初始化与密码设置](#2.5 数据库初始化与密码设置)

[三、DVWA 靶场部署流程(知识点边界:源码部署 + 配置文件修改 + 数据库关联)](#三、DVWA 靶场部署流程(知识点边界:源码部署 + 配置文件修改 + 数据库关联))

[3.1 DVWA 源码下载与解压](#3.1 DVWA 源码下载与解压)

[3.2 配置文件修改(核心步骤)](#3.2 配置文件修改(核心步骤))

​编辑

[3.3 创建 DVWA 专用数据库](#3.3 创建 DVWA 专用数据库)

[3.4 php.ini 关键参数配置](#3.4 php.ini 关键参数配置)

[四、环境验证与功能测试(知识点边界:访问测试 + 功能检测)](#四、环境验证与功能测试(知识点边界:访问测试 + 功能检测))

[4.1 靶场访问测试](#4.1 靶场访问测试)

[1. 确认 MySQL 的实际账号密码](#1. 确认 MySQL 的实际账号密码)

[2. 在小皮中操作 MySQL打开小皮进入 phpMyAdmin;](#2. 在小皮中操作 MySQL打开小皮进入 phpMyAdmin;)

​编辑​编辑

[4.3 漏洞模块可用性检测](#4.3 漏洞模块可用性检测)

[五、高频问题排查与解决方案(知识点边界:5 类新手常见问题 + 命令级解决方案)](#五、高频问题排查与解决方案(知识点边界:5 类新手常见问题 + 命令级解决方案))

[问题 1:80/3306 端口占用,phpstudy 服务启动失败](#问题 1:80/3306 端口占用,phpstudy 服务启动失败)

[问题 2:DVWA 登录后提示数据库连接失败](#问题 2:DVWA 登录后提示数据库连接失败)

[问题 3:DVWA 提示 Permission denied(目录权限不足)](#问题 3:DVWA 提示 Permission denied(目录权限不足))

[问题 4:php 扩展缺失,页面显示空白或报错](#问题 4:php 扩展缺失,页面显示空白或报错)

[问题 5:DVWA 页面 CSS/JS 加载失败,显示错乱](#问题 5:DVWA 页面 CSS/JS 加载失败,显示错乱)

六、后续预告


合规免责声明

本文所涉及的 DVWA 靶场搭建、配置及测试技术,仅用于网络安全学习、渗透测试技术研究场景。使用者必须严格遵守《中华人民共和国网络安全法》《计算机信息网络国际联网安全保护管理办法》等相关法律法规,严禁将技术用于未经授权的网络攻击、数据窃取等违法违规行为。因违规使用本文技术内容造成的一切法律责任、经济损失,均由使用者自行承担。本文内容仅为技术分享,不承担任何连带责任。

思维导图(细化到子步骤)

一、前期准备(知识点边界:环境适配 + 权限网络配置)

1.1 系统环境要求

本文适配 Windows11 专业版 / 企业版,该版本对 phpstudy 组件兼容性最佳;若使用 Windows11 家庭版,需注意:

  • 家庭版缺少部分组策略功能,可能导致端口占用排查、权限配置操作受限;
  • 建议切换到内置管理员账户进行后续操作,减少权限问题。

1.2 软件下载清单

软件名称 用途 官方下载地址
phpstudy Web 环境集成套件 phpstudy 官方下载页
DVWA 源码 渗透测试靶场 DVWA GitHub 仓库
Chrome/Firefox 靶场访问测试 浏览器官网直接下载

1.3 管理员账户启用与 UAC 权限调整

步骤 1:启用内置管理员账户 按下 Win+R 输入 cmd右键以管理员身份运行命令提示符,执行以下命令(方法很多,比较简单,这就不在多说了):

复制代码
net user administrator /active:yes

执行完成后,注销当前账户,切换到 Administrator 账户登录,避免普通账户权限不足。

步骤 2:调整 UAC 权限 控制面板 → 用户账户 → 更改用户账户控制设置 → 拖动滑块到从不通知 → 点击 "确定" → 重启电脑生效。

1.4 防火墙端口放行

phpstudy 默认使用 80(HTTP 端口)、3306(MySQL 端口),需在防火墙中放行:

  1. 控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则;
  2. 规则类型选择端口 → 勾选 TCP → 输入端口号 80,3306 → 允许连接;
  3. 勾选 "域、专用、公网" → 规则名称填写 "phpstudy 靶场端口" → 完成。

二、phpstudy 安装与核心配置(知识点边界:安装流程 + 组件配置 + 服务验证)

2.1 phpstudy 下载与安装

  1. 访问 phpstudy 官网,下载最新版 Windows 安装包(约 78MB);
  2. 右键安装包 → 以管理员身份运行 ,选择安装路径(建议非系统盘,如 D:\phpstudy_pro);
  3. 点击 "立即安装" → 等待安装完成。

2.2 组件选择与安装

phpstudy 支持多版本组件切换,本文选择兼容性最佳 的组合:Apache 2.4 + MySQL 5.7

  1. 安装完成后自动启动 phpstudy 控制面板 → 点击 "组件管理";
  2. 在 "Web 服务器" 中勾选 Apache 2.4 → "数据库" 勾选 MySQL 5.7
  3. 点击 "一键安装" → 等待组件下载安装完成(约 5-10 分钟)。

2.3 端口配置与冲突检测

核心逻辑:端口是服务通信的 "通道",若 80/3306 端口被其他程序(如 IIS、MySQL 其他版本)占用,会导致 phpstudy 服务启动失败。

步骤 1:端口占用检测 在 phpstudy 控制面板 → 点击 "端口检测" → 输入端口号 803306 → 点击 "检测"。

  • 若显示 "端口未被占用":直接进入下一步;
  • 若显示 "端口被占用":记录占用进程 PID,点击 "强制释放" → 确认释放端口。

**步骤 2:手动修改端口(可选)**若强制释放失败,可手动修改端口:

  1. 点击 "设置" → "端口设置";
  2. 将 Apache 端口从 80 修改为 8080,MySQL 端口从 3306 修改为 3307
  3. 点击 "保存" → 重启 phpstudy 服务。

2.4 服务启动与状态验证

  1. 返回 phpstudy 控制面板 → 点击 "启动" 按钮(启动 Apache 和 MySQL 服务);
  2. 若服务图标显示绿色 ,说明启动成功;若显示红色,需排查端口或组件问题。
  3. 验证 Web 服务:打开浏览器,访问 http://localhost:80(或修改后的端口 http://localhost:8089),出现 phpstudy 默认页面则说明 Apache 运行正常。

2.5 数据库初始化与密码设置

  1. 点击 phpstudy 控制面板 → "数据库" → "MySQL 管理" → 打开 phpMyAdmin;

  2. 登录 phpMyAdmin,默认账号 root,默认密码 root

  3. 点击 "修改密码" → 输入新密码(如 dvwa@123456) → 保存修改;

  4. 核心操作:执行 SQL 命令赋予 root 用户远程访问权限(仅本地测试用):

    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '你的新密码' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

三、DVWA 靶场部署流程(知识点边界:源码部署 + 配置文件修改 + 数据库关联)

3.1 DVWA 源码下载与解压

  1. 访问 DVWA GitHub 仓库 → 点击 "Code" → "Download ZIP" → 下载源码压缩包;

  2. 解压压缩包 → 将解压后的文件夹重命名为 dvwa

  3. dvwa 文件夹复制到 phpstudy 的网站根目录:D:\phpstudy_pro\WWW

3.2 配置文件修改(核心步骤)

DVWA 需通过配置文件关联数据库,步骤如下:

  1. 进入 D:\phpstudy_pro\WWW\dvwa\config 目录;

  2. 复制 config.inc.php.dist 文件 → 重命名为 config.inc.php

  3. 右键 config.inc.php → 选择 "编辑"(建议用 Notepad++) → 修改以下参数:

    数据库连接配置

    _DVWA['db_server'] = '127.0.0.1'; // MySQL 服务器地址 _DVWA['db_database'] = 'dvwa'; // 要创建的数据库名
    _DVWA['db_user'] = 'root'; // MySQL 用户名 _DVWA['db_password'] = 'dvwa@123456'; // 你设置的 MySQL 密码
    $_DVWA['db_port'] = '3306'; // MySQL 端口(若修改则对应修改)

    关闭 reCAPTCHA 验证(新手必备)

    _DVWA['recaptcha_public_key'] = ''; _DVWA['recaptcha_private_key'] = '';

3.3 创建 DVWA 专用数据库

方式 1:phpMyAdmin 可视化创建(新手推荐)

  1. 登录 phpMyAdmin → 点击 "新建" → 数据库名输入 dvwa → 字符集选择 utf8_general_ci → 点击 "创建"。
  2. 没有phpmyadmin的在软件商店找到并点击安装,然后点击管理,就进入到登录界面了,输入之前设置的数据库密码就行。创建dvwa数据库

方式 2:SQL 命令创建

复制代码
# sql
CREATE DATABASE IF NOT EXISTS dvwa DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3.4 php.ini 关键参数配置

DVWA 运行需要开启 php 的 allow_url_fopendisplay_errors 功能,步骤如下:

  1. 回到 phpstudy 控制面板 → 点击 "软件管理" → 选择 PHP 对应版本 → 点击 "安装" (我的已经安装好了,没安装参考图例);
  2. 安装好的找到php.ini文件,路径在安装小皮的目录下面D:\phpstudy_pro\Extensions\php\php7.3.4nts
  3. 查找 allow_url_fopen → 将值改为 On
  4. 查找 display_errors → 将值改为 On
  5. 查找 extension=mysqli → 去掉前面的分号(开启 mysqli 扩展,解决数据库连接问题);
  6. 保存修改 → 重启 Apache 服务生效。

四、环境验证与功能测试(知识点边界:访问测试 + 功能检测)

4.1 靶场访问测试

  1. 确保 phpstudy 的 Apache 和 MySQL 服务处于启动状态;

  2. 打开浏览器 → 访问 http://localhost/dvwa(若修改端口则为 http://localhost:8080/dvwa);

  3. 出现 DVWA 页面,说明部署成功。

  4. 创建 / 重置数据库

    点击页面底部的 "Create / Reset Database" 按钮 ,系统会自动创建 DVWA 所需的数据库,并生成配置文件config.inc.php。如果出现下面的截图,或没有跳转这是 DVWA 的数据库连接错误提示,错误原因是数据库用户dvwa@localhost的访问被拒绝,解决步骤如下:

    这是 DVWA 的数据库连接错误提示,错误原因是数据库用户dvwa@localhost的访问被拒绝,解决步骤如下:

    1. 确认 MySQL 的实际账号密码

    小皮(phpStudy)中 MySQL 的默认账号通常是root,密码默认为空或root,而 DVWA 默认配置的用户是dvwa,需先在 MySQL 中创建dvwa用户并授权。

    2. 在小皮中操作 MySQL打开小皮进入 phpMyAdmin;

    1. 登录 MySQL(用root账号);

    2. 执行 SQL 语句创建dvwa用户并授权:

      复制代码
      #  sql
      CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'dvwa';
      GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
      FLUSH PRIVILEGES;
  1. 修改 DVWA 的配置文件
  • 找到 DVWA 目录下的config.inc.php(若没有,复制config.inc.php.dist并重命名);

  • 打开文件,修改数据库配置为实际的 MySQL 信息:

    复制代码
    $_DVWA[ 'db_user' ] = 'dvwa';       // 改为创建的用户名
    $_DVWA[ 'db_password' ] = 'dvwa';   // 改为设置的密码
    $_DVWA[ 'db_port' ] = '3306';       // 确认小皮中MySQL的端口(默认3306)

  1. 重新尝试创建数据库

保存配置文件后,返回 DVWA 页面,再次点击「Create / Reset Database」按钮,即可完成数据库连接,再次点击「Create / Reset Database」即可跳转到登录页面。

4.3 漏洞模块可用性检测

  1. 登录 DVWA 主界面 → 左侧菜单选择 SQL Injection(SQL 注入模块);
  2. 输入任意 ID(如 1) → 点击 "Submit" → 页面返回用户信息,说明模块正常运行;
  3. 切换漏洞等级:点击右上角 DVWA Security → 选择 Medium/High → 验证等级切换功能。

五、高频问题排查与解决方案(知识点边界:5 类新手常见问题 + 命令级解决方案)

问题 1:80/3306 端口占用,phpstudy 服务启动失败

现象 :phpstudy 控制面板中 Apache/MySQL 服务显示红色,提示 "端口被占用"。解决方案

  1. 以管理员身份运行 cmd → 执行端口检测命令:

    检测 80 端口占用进程

    netstat -ano | findstr ":80"

    检测 3306 端口占用进程

    netstat -ano | findstr ":3306"

  2. 记录返回的 PID → 打开任务管理器 → 详细信息 → 找到对应 PID 的进程 → 右键 "结束任务";

  3. 若进程无法结束(如系统进程),参考 2.3 步骤修改 phpstudy 端口。

问题 2:DVWA 登录后提示数据库连接失败

现象 :登录后显示 Could not connect to the database解决方案

  1. 检查 config.inc.php 文件中的数据库参数是否正确(账号、密码、端口);

  2. 确认 MySQL 服务已启动 → phpstudy 控制面板重启 MySQL;

  3. 检查 php 的 mysqli 扩展是否开启 → 参考 3.4 步骤开启扩展并重启 Apache;

  4. 执行 SQL 命令重置 root 权限:

    sql

    GRANT ALL ON dvwa.* TO 'root'@'localhost' IDENTIFIED BY '你的密码';
    FLUSH PRIVILEGES;

问题 3:DVWA 提示 Permission denied(目录权限不足)

现象 :点击 Create / Reset Database 提示权限不足,无法创建数据表。解决方案

  1. 右键 dvwa 文件夹 → 属性 → 安全 → 编辑 → 添加 Administrator 用户;
  2. 勾选 "完全控制" 权限 → 应用 → 确定;
  3. 进入 dvwa\hackable\uploads 目录 → 同样赋予完全控制权限(文件上传模块需要)。

问题 4:php 扩展缺失,页面显示空白或报错

现象 :访问 DVWA 页面空白,或提示 Call to undefined function mysqli_connect()解决方案

  1. 确认 php 7.4 版本已安装 mysqli 扩展 → phpstudy 组件管理检查;
  2. 打开 php.ini → 确保 extension_dir 指向正确的扩展路径(如 D:\phpstudy_pro\Extensions\php\php7.4.33nts\ext);
  3. 重启 Apache 服务 → 访问 http://localhost/phpinfo.php(新建 php 文件写入 <?php phpinfo();?>) → 搜索 mysqli,确认扩展已加载。

问题 5:DVWA 页面 CSS/JS 加载失败,显示错乱

现象 :登录后页面无样式,文字排版混乱。解决方案

  1. 检查 config.inc.php 中的 $_DVWA['base_url'] 参数 → 若修改过端口,需改为 http://localhost:8080/dvwa
  2. 清除浏览器缓存 → 按 Ctrl+F5 强制刷新页面;
  3. 确认 phpstudy 的 Apache 服务已启动 → 检查网站根目录权限是否正确。

六、后续预告

本文仅覆盖 DVWA 靶场的基础搭建与入门验证,关于靶场的深度使用技巧、漏洞复现实战、安全加固策略等进阶内容,我将在后续付费专栏中持续更新。关注我,获取更多网络安全实战干货,让你的渗透测试学习之路少走弯路!

相关推荐
CodeAmaz9 小时前
MySQL 事务隔离级别详解
数据库·mysql·事务隔离级别
千寻技术帮9 小时前
10398_基于SSM的教学评价管理系统
数据库·mysql·毕业设计·ssm·教学评价
晨星33410 小时前
使用 IntelliJ IDEA 轻松连接 Java 与 MySQL 8 数据库
java·开发语言·数据库
PWRJOY10 小时前
【MySQL】使用mycli查看数据库的基本操作
数据库·mysql
SadSunset10 小时前
(16)Bean的实例化
java·数据库·笔记·spring
JIngJaneIL11 小时前
基于Java + vue干洗店预约洗衣系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
cui_win11 小时前
MySQL 压测实战:sysbench 从入门到精通
数据库·mysql·压测·sysbench
屋外雨大,惊蛰出没11 小时前
小白安装Redis
数据库·redis·缓存
IndulgeCui11 小时前
KES集群部署安装问题记录
数据库