当前位置:当前位置:首页 > 娱乐 > 搭建dvwa环境 正文

搭建dvwa环境

[娱乐] 时间:2026-10-17 04:26:23 来源:力不从心网 作者:热点 点击:160次

DVWA跑起来只需要三样东西:一个Web服务器、搭建PHP、环境MySQL。搭建但真正动手的环境时候,坑往往出在版本兼容和权限配置上。搭建我前后搭过五次DVWA环境,环境三次在Windows上,搭建两次在Linux上,环境每次都会碰到不一样的搭建问题。这篇文章记录的环境是最近一次在Ubuntu 22.04上从零搭建的完整过程,包括我踩到的搭建那些坑。

先说环境选择。环境DVWA官方推荐用XAMPP或者phpStudy这类集成环境,搭建确实省事,环境但我更倾向于手动装LAMP。搭建原因很简单:集成环境里MySQL的root密码默认是空的,DVWA安装脚本会直接连上,看起来很方便,可一旦你想改配置或者排查问题,反而多了一层封装,不透明。手动装虽然多敲几条命令,但每个环节都在你眼皮底下。

安装LAMP组件

Ubuntu 22.04自带的PHP版本是8.1,这个版本跑DVWA 1.9没问题,但如果你用的是更老的DVWA版本,可能会遇到mysql_connect()函数被移除的报错。我用的就是最新版DVWA,所以直接apt装就行:

sudo apt update sudo apt install apache2 mysql-server php php-mysqli php-gd libapache2-mod-php

装完之后验证一下Apache有没有起来,浏览器访问http://localhost,看到Apache默认页面就说明Web服务器没问题。MySQL的话,Ubuntu 22.04默认装的是MySQL 8.0,这里有个细节要注意:MySQL 8.0默认的认证插件是caching_sha2_password,而PHP 8.1的mysqli扩展是支持这个插件的,所以不用像以前那样改回mysql_native_password。但如果你用的是PHP 7.4以下版本,那就必须改,否则DVWA连数据库会报认证失败。

配置数据库和DVWA文件

MySQL装好后,root用户默认是通过auth_socket插件认证的,也就是说你只能用sudo mysql进入,不能用密码登录。DVWA的安装脚本需要密码认证,所以得先给root设个密码:

sudo mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的密码'; FLUSH PRIVILEGES; EXIT;

然后创建DVWA专用数据库和用户。其实直接用root也行,但我不建议,万一DVWA被攻破了,root权限全丢,风险太大。单独建个用户,只给dvwa库的权限:

CREATE DATABASE dvwa; CREATE USER 'dvwa_user'@'localhost' IDENTIFIED BY 'dvwa_pass'; GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa_user'@'localhost'; FLUSH PRIVILEGES;

接下来把DVWA源码放到Web目录。从GitHub克隆或者直接下载zip包都行:

cd /var/www/html sudo git clone https://github.com/digininja/DVWA.git dvwa sudo chown -R www-data:www-data /var/www/html/dvwa sudo chmod -R 755 /var/www/html/dvwa

权限这里有个坑。DVWA的hackable/uploads/目录需要写权限,否则文件上传漏洞模块没法用。config/目录也需要写权限,因为安装脚本要生成配置文件。我一般直接把这两个目录改成777,虽然不太安全,但DVWA本身就是个靶场,无所谓:

sudo chmod -R 777 /var/www/html/dvwa/hackable/uploads sudo chmod -R 777 /var/www/html/dvwa/config

修改配置文件并安装

进入config/目录,把config.inc.php.dist复制成config.inc.php,然后编辑数据库连接信息:

$_DVWA[ 'db_server' ] = '127.0.0.1'; $_DVWA[ 'db_database' ] = 'dvwa'; $_DVWA[ 'db_user' ] = 'dvwa_user'; $_DVWA[ 'db_password' ] = 'dvwa_pass';

另外把$_DVWA[ 'recaptcha_public_key' ]和$_DVWA[ 'recaptcha_private_key' ]留空就行,不然有些模块会报错。还有default_security_level可以设成low,方便直接开始练习。

浏览器访问http://localhost/dvwa/setup.php,点页面底部的“Create / Reset Database”按钮。如果一切正常,会跳转到登录页,默认账号admin,密码password。登录后就能看到DVWA的主界面了。

我遇到过一次报错,提示“Could not connect to the database”。排查了半天,发现是MySQL的bind-address配置问题。Ubuntu默认只监听127.0.0.1,而DVWA配置里如果写的是localhost,在某些PHP版本下会走socket连接,反而连不上。改成127.0.0.1就解决了。这个细节很小,但卡住的时候真挺烦人。

环境搭好只是第一步。DVWA默认安全级别是impossible,你需要手动在DVWA Security页面调成low,不然所有漏洞模块都是防住的,练不了。这个设计其实挺合理,防止你误操作。搭完之后建议先跑一遍SQL Injection和XSS模块,确认环境真的能触发漏洞,再开始系统练习。

(责任编辑:时尚)

相关内容
精彩推荐
热门点击
友情链接