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

相关推荐
jiayou642 小时前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
BingoGo5 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack5 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
李广坤1 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1772 天前
《从零搭建NestJS项目》
数据库·typescript
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php