搭建DVWA(Damn Vulnerable Web Application)的数据库是整个部署过程中的关键步骤,它为这个安全测试平台提供了数据存储和运行环境,DVWA作为一个专为安全学习和渗透测试设计的PHP/MySQL应用,其数据库的搭建不仅需要正确安装MySQL/MariaDB服务,还需要导入预设的数据库结构,以确保所有功能模块正常运行,以下是详细的搭建步骤和注意事项。

环境准备与依赖安装
在开始搭建数据库之前,需要确保系统已满足基本环境要求,DVWA依赖于PHP、MySQL(或MariaDB)和Web服务器(如Apache或Nginx),以Linux系统为例,首先更新软件包列表并安装必要的组件:
sudo apt update && sudo apt upgrade -y sudo apt install apache2 mysql-server php php-mysql libapache2-mod-php -y
安装完成后,启动并启用相关服务:
sudo systemctl start apache2 sudo systemctl enable apache2 sudo systemctl start mysql sudo systemctl enable mysql
Windows用户可分别安装XAMPP、WAMP或集成环境,确保PHP版本≥7.0,MySQL版本≥5.6,并开启mysqli扩展。
MySQL/MariaDB初始化配置
首次启动MySQL后,需进行安全初始化设置,包括设置root密码、移除匿名用户等,运行以下命令:
sudo mysql_secure_installation
根据提示完成配置,建议为root设置强密码并移除远程访问权限(如仅允许本地连接),随后,登录MySQL创建DVWA专用数据库和用户:

mysql -u root -p CREATE DATABASE dvwa; CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'password'; -- 替换为自定义密码 GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost'; FLUSH PRIVILEGES; EXIT;
注意:密码需包含字母、数字和特殊字符,避免使用弱密码。
导入DVWA数据库文件
DVWA的源码包中包含setup.sql文件,定义了数据库表结构和初始数据,从GitHub下载最新版DVWA(如dvwa-master.zip),解压后将其放置到Web服务器根目录(如/var/www/html/dvwa),找到setup.sql文件(通常位于/dvwa/setup),通过以下命令导入:
mysql -u dvwa -p dvwa < /var/www/html/dvwa/setup/setup.sql
输入之前为dvwa用户设置的密码,若导入成功,可通过SHOW TABLES;检查是否包含users、guestbook等表。
配置DVWA连接数据库
修改DVWA的数据库配置文件config.inc.php,确保连接参数正确,该文件位于/var/www/html/dvwa/config/,需修改以下内容:
$_DVWA[ 'db_server' ] = '127.0.0.1'; // 数据库服务器地址 $_DVWA[ 'db_database' ] = 'dvwa'; // 数据库名 $_DVWA[ 'db_user' ] = 'dvwa'; // 数据库用户名 $_DVWA[ 'db_password' ] = 'password'; // 用户密码
保存后,设置文件权限(确保Web服务器可读写):

sudo chmod -R 755 /var/www/html/dvwa sudo chown -R www-data:www-data /var/www/html/dvwa
验证数据库功能
访问DVWA(http://localhost/dvwa),使用默认账户admin/password登录,若数据库配置正确,页面将显示“DVWA Security”选项,且安全级别(Low/Medium/High/Impossible)可正常切换,尝试执行简单操作(如留言板功能),若数据能写入数据库,说明搭建成功。
常见问题与解决方案
:检查文件路径是否正确,或尝试手动执行SQL语句(如先 USE dvwa;再逐行执行SQL)。- 页面提示“Database connection failed”:确认
config.inc.php中的用户名、密码及数据库服务是否运行,可通过mysql -u dvwa -p dvwa -e "SELECT 1;"测试连接。
FAQs
Q1:DVWA数据库搭建后,如何修改默认管理员密码?
A1:登录DVWA后,进入“DVWA Security”页面,点击“Reset DB”按钮重置数据库,或直接在MySQL中更新users表:
USE dvwa;
UPDATE users SET password = MD5('新密码') WHERE user = 'admin'; 建议同时修改config.inc.php中的默认密码。
Q2:是否可以自定义DVWA数据库表结构?
A2:可以,但修改表结构后需确保代码逻辑兼容,若新增字段,需同步修改PHP代码中的SQL查询语句,避免功能异常,建议在测试环境中操作,避免影响核心功能。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复