1. DVWA漏洞靶场快速部署指南
DVWA(Damn Vulnerable Web Application)是一个专为安全测试人员设计的漏洞靶场,它包含了常见的Web安全漏洞,如SQL注入、XSS、文件上传等。这个靶场最大的特点是"故意不安全",让学习者可以在合法环境中练习渗透测试技术,而不用担心法律风险。
我第一次接触DVWA是在2015年的一次安全培训中,当时就被它简单易用的界面和丰富的漏洞类型所吸引。经过这些年的使用,我发现DVWA确实是安全入门者最好的练手工具之一。下面我就来分享如何快速部署这个靶场环境。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 部署环境准备
2.1 系统要求
DVWA可以运行在多种环境中,但最推荐的是以下配置:
- 操作系统:Ubuntu 20.04/22.04 LTS 或 Kali Linux
- Web服务器:Apache 2.4.x
- 数据库:MySQL 5.7+ 或 MariaDB 10.3+
- PHP版本:7.4.x(不推荐8.0+,可能存在兼容性问题)
- 内存:至少2GB
- 磁盘空间:10GB以上
提示:虽然DVWA也可以在Windows上运行,但Linux环境更接近实际生产环境,建议优先选择。
2.2 基础软件安装
对于Ubuntu系统,首先需要安装LAMP环境:
bash复制sudo apt update
sudo apt install -y apache2 mariadb-server php libapache2-mod-php php-mysql php-gd php-curl
安装完成后,检查各组件版本:
bash复制apache2 -v
mysql --version
php -v
3. DVWA安装与配置
3.1 下载与解压
从官方GitHub仓库下载最新版本:
bash复制cd /var/www/html
sudo wget https://github.com/digininja/DVWA/archive/master.zip
sudo unzip master.zip
sudo mv DVWA-master dvwa
sudo rm master.zip
3.2 配置文件修改
进入DVWA目录,复制配置文件模板:
bash复制cd /var/www/html/dvwa/config
sudo cp config.inc.php.dist config.inc.php
编辑配置文件,主要修改数据库连接信息:
php复制$_DVWA = array();
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'p@ssw0rd';
3.3 数据库初始化
登录MySQL创建数据库和用户:
sql复制CREATE DATABASE dvwa;
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'p@ssw0rd';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
FLUSH PRIVILEGES;
然后初始化数据库结构:
bash复制sudo mysql -u root -p dvwa < /var/www/html/dvwa/sql/dvwa.sql
4. 安全配置与优化
4.1 文件权限设置
DVWA需要特定目录的写权限:
bash复制sudo chown -R www-data:www-data /var/www/html/dvwa
sudo chmod -R 755 /var/www/html/dvwa
sudo chmod 777 /var/www/html/dvwa/hackable/uploads/
sudo chmod 777 /var/www/html/dvwa/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
4.2 PHP安全配置
编辑php.ini文件,确保以下设置:
ini复制allow_url_include = On
allow_url_fopen = On
safe_mode = Off
magic_quotes_gpc = Off
display_errors = On
4.3 防火墙设置
如果系统启用了防火墙,需要开放HTTP端口:
bash复制sudo ufw allow 80/tcp
sudo ufw enable
5. 访问与使用DVWA
5.1 首次访问
在浏览器中输入服务器IP或域名:
code复制http://your-server-ip/dvwa/
默认登录凭证:
- 用户名:admin
- 密码:password
首次登录后,需要点击"Create / Reset Database"按钮初始化数据库。
5.2 安全等级设置
DVWA提供四个安全等级:
- Low:完全无防护
- Medium:基本防护
- High:较强防护
- Impossible:几乎无法攻破
可以在"DVWA Security"页面切换安全等级。
6. 常见问题解决
6.1 数据库连接失败
错误现象:无法创建/重置数据库
解决方法:
- 检查config.inc.php中的数据库配置
- 确保MySQL服务正在运行
- 确认数据库用户有足够权限
6.2 文件上传失败
错误现象:无法上传文件到hackable/uploads目录
解决方法:
bash复制sudo chmod -R 777 /var/www/html/dvwa/hackable/uploads/
sudo chown -R www-data:www-data /var/www/html/dvwa/hackable/uploads/
6.3 PHP版本兼容性问题
错误现象:页面显示异常或功能不正常
解决方法:
- 确认使用PHP 7.4.x版本
- 检查php.ini配置是否正确
- 查看Apache错误日志定位问题
7. 高级部署方案
7.1 Docker部署
对于想快速体验的用户,可以使用Docker方式:
bash复制docker run --rm -it -p 80:80 vulnerables/web-dvwa
7.2 多实例隔离
如果需要为多个用户提供独立环境,可以使用Docker Compose:
yaml复制version: '3'
services:
dvwa:
image: vulnerables/web-dvwa
ports:
- "8080:80"
environment:
- PHPIDS_ENABLE=true
volumes:
- ./dvwa-data:/var/www/html
7.3 集成到Kali Linux
Kali Linux已内置DVWA,可以通过以下命令启用:
bash复制sudo service apache2 start
sudo service mysql start
sudo dvwa-start
8. 安全注意事项
- 不要在生产环境部署DVWA
- 定期更改默认凭证
- 限制访问IP范围
- 使用后及时关闭服务
- 不要在公共网络开放DVWA服务
我在实际使用中发现,很多初学者容易忽视DVWA本身的安全问题。曾经有一次,一个学生在公有云上部署了DVWA但没有设置访问限制,结果被黑客利用来攻击其他系统。因此,我强烈建议只在本地或受控网络中运行DVWA。
