【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例)

一、DVWA靶场简介
DVWA(Damn Vulnerable Web Application)是专为网络安全学习者设计的漏洞演练平台,包含SQL注入、XSS、文件包含等10大Web漏洞模块,采用PHP+MySQL架构,非常适合用于:
- Web安全漏洞原理学习
- 渗透测试技能实战演练
- 安全工具(BurpSuite、sqlmap等)实战测试
二、环境准备(Ubuntu 20.04/22.04)
1. 更新系统源
bash
sudo apt update && sudo apt upgrade -y
2. 安装LAMP环境
bash
sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql
3. 安装必要扩展
bash
sudo apt install -y php-gd php-curl php-zip php-mbstring php-xml
三、DVWA部署流程(详细步骤)
1. 下载DVWA源码
bash
cd /var/www/html
sudo wget https://githubfast.com/digininja/DVWA/archive/master.zip
sudo unzip master.zip
sudo mv DVWA-master dvwa
sudo rm master.zip
2. 配置数据库
bash
#启动mysql
sudo systemctl start mysql
#查看状态
sudo systemctl status mysql
#开机服务启动
sudo systemctl enable mysql
sudo mysql -u root -p
> CREATE DATABASE dvwa;
> CREATE USER 'dvwa_user'@'localhost' IDENTIFIED BY 'P@ssw0rd';
> GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa_user'@'localhost';
> FLUSH PRIVILEGES;
> exit
#docker单独安装mysql数据库(可选)
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0.39
#启动(可选)
docker run --name mysql_test -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0.39
#进入(可选)
docker exec -it mysql_test mysql -uroot -p
3. 修改配置文件
bash
cd dvwa/config
sudo cp config.inc.php.dist config.inc.php
sudo nano config.inc.php
修改以下参数:
php
$_DVWA['db_user'] = 'dvwa_user';
$_DVWA['db_password'] = 'p@ssw0rd';
$_DVWA[ 'recaptcha_public_key' ] = getenv('RECAPTCHA_PUBLIC_KEY') ?: '6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb';
$_DVWA[ 'recaptcha_private_key' ] = getenv('RECAPTCHA_PRIVATE_KEY') ?: '6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4Kwq';
数据库修改:

配置key:

4. 设置文件权限
bash
sudo chmod -R 755 /var/www/html/dvwa
sudo chown -R www-data:www-data /var/www/html/dvwa
5. 重启服务
bash
#启用mod_rewrite
sudo a2enmod rewrite
#修改vim /etc/php/8.3/apache2/php.ini
display_startup_errors = On
#如果没有则添加
display_errors = On
#允许远程文件访问
allow_url_fopen = On
allow_url_include = On
sudo systemctl restart apache2
#检查状态
systemctl status apache2
#查看报错日志
tail -f /var/log/apache2/error.log
四、访问与初始化
- 浏览器访问
http://localhost/dvwa
- 点击"Create / Reset Database"初始化数据库:
- 使用默认账号登录:
- 用户名:admin
- 密码:password
登录界面:

五、常见问题排查
1. PHP函数未启用错误
解决方法:
bash
sudo nano /etc/php/8.1/apache2/php.ini
修改以下配置:
ini
allow_url_include = On
magic_quotes_gpc = Off
2. 数据库连接失败
检查:
- MySQL服务状态
systemctl status mysql
- 用户权限是否配置正确
- 防火墙是否放行3306端口
3. 文件权限问题
重置权限命令:
bash
sudo chmod -R 777 /var/www/html/dvwa/hackable/uploads
六、渗透测试实战示例(SQL注入)
1. 设置安全等级
将DVWA Security设为"Low"
2. SQL注入测试
访问SQL Injection页面,输入:
1' union select 1,group_concat(user,0x3a,password) from users#
3. 使用sqlmap自动化测试
bash
sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=xxx; security=low" --dbs
七、安全建议
- 仅在本地环境搭建
- 定期更新系统补丁
- 使用完成后关闭服务
bash
sudo systemctl stop apache2 mysql
下一篇预告: 《DVWA靶场XSS漏洞实战:从注入到Cookie劫持》
(注:实际操作请遵守网络安全法,仅在授权环境进行测试)
安全建议
- 仅在本地环境搭建
- 定期更新系统补丁
- 使用完成后关闭服务
bash
sudo systemctl stop apache2 mysql
如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!