DVWA靶场通关指南之搭建靶场
✨ DVWA通关指南之搭建靶场 ✨
📌 概括
DVWA即Damn Vulnerable Web Application,是用PHP和MySQL编写的开源Web应用程序,用于安全测试与学习。它有诸多优势,开源免费且易安装部署,还设有低、中、高和不可能四种安全级别,能改变漏洞利用难度。其包含多种常见Web安全漏洞,像注入、跨站脚本攻击、文件包含、暴力破解等。借助DVWA,初学者可了解漏洞原理与防范措施;安全专业人员能测试自身技能;在教学场景中,它也是助力学生掌握Web安全知识的实用工具。本文主要是带来Windows本地部署DVWA的教程。
🖥️ Windows本地部署DVWA靶场
1️⃣ 环境准备
🌐 源码下载:https://github.com/digininja/DVWA
🌐 PHPStudy下载并且安装:https://www.xp.cn/windows.html
2️⃣ 安装PHPStudy
⚙️本地安装PHPStudy
- 双击安装包,选择安装路径根据提示无脑下一步即可
📂 路径要求:
- 避免中文路径和空格(推荐:
D:\phpstudy_pro
)
✅ 验证安装:
- 安装完成后桌面应出现”小皮面板”图标,运行后主界面如下
3️⃣ DVWA部署流程
📁 源码操作:
- 解压下载的 ZIP 文件
- 重命名为
DVWA
- 将DVWA夹移动到 phpStudy 根目录:
D\phpStudy_pro\WWW
(根据自己安装目录来)
⚙️ 配置文件修改:
靶场的源码配置文件路径:
DVWA\config\config.inc.php
重命名
config.inc.php.dist
为config.inc.php
修改config.inc.php配置文件
编辑文件关键段落:
// 数据库配置 (约第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'; //数据库连接端口
⚠️ 注意:
数据库连接用户名,数据库连接密码都可以在查看 phpStudy 数据库管理界面查看默认数据库密码记住下面修改配置需要用(可修改密码和添加数据库)
mysql
数据库连接默认端口3306
4️⃣ 服务启动与验证
🚀 启动服务:
启动前置服务:必须开启服务:Apache+MySQL(如果报错可能是端口被占用)
🌐 访问验证:
浏览器输入:
http://127.0.0.1/DVWA/
🔄 初始化:
点击底部
Create/Reset Database
显示 Setup completed 即成功,重新访问
http://127.0.0.1/DVWA/
🔐 登录凭证:
默认账号:
admin
默认密码:
password
5️⃣文件包含模块报错解决方法
登录成功后
File Inclusion
文件包含模块报错
🤔原因:
DVWA 的 文件包含漏洞(File Inclusion) 实验需依赖远程文件加载功能。
allow_url_include=On
允许 PHP 执行如include("http://外部URL/恶意脚本")
的远程代码,模拟攻击链。
🍔解决办法:
查看选择使用的版本信息
http://127.0.0.1/dvwa/phpinfo.php
打开 php.ini 文件
路径:phpStudy安装目录\Extensions\php\版本号\php.ini
(例如:D:\phpstudy_pro\Extensions\php\php5.4.45nts\php.ini)
搜索并修改以下配置项:
#允许包含远程文件
allow_url_include = On
#允许打开远程文件(需同步开启)
allow_url_fopen = On重启Apache服务
访问
File Inclusion
模块查看无报错就解决了
6️⃣命令注入(Command Injection)模块乱码解决方法
修改配置文件
dvwaPage.inc.php
路径:
phpStudy安装目录\WWW\DVWA\dvwa\includes\\dvwaPage.inc.php
如:
D:\phpstudy_pro\WWW\DVWA\dvwa\includes\dvwaPage.inc.php
搜索并修改以下配置项:
Header( 'Content-Type: text/html;charset=GB2312' ); // UTF-8修改为GB2312
修改前:
修改后
保存配置在命令执行模块验证一下,乱码就解决了
🚨 故障排查
数据库连接失败
现象:红字提示
Access denied for user root@localhost
解决方案:
phpStudy 面板 » 数据库 » MySQL root密码 » 重置为
root
重新执行数据库创建操作
配置文件修改无效
现象:页面仍显示 “.dist配置文件缺失”
排查步骤:
系统设置 » 文件夹选项 » 显示文件扩展名
确认文件实际扩展名为 .php 而非 .php.dist