DVWA 靶场部署
DVWA(Damn Vulnerable Web Application)是专为学习 Web 安全设计的漏洞靶场,涵盖 SQL 注入、XSS、CSRF、文件上传、命令注入等常见漏洞,分低/中/高三个难度等级。
1. 环境要求
- Web 服务器:Apache/Nginx + PHP 7.x + MySQL
- PHP 版本建议 7.4(太高可能不兼容)
- 关闭 PHP 安全模式(
safe_mode = Off)
2. 安装部署
2.1 下载源码
cd /var/www/html
git clone https://github.com/digininja/DVWA.git
cd DVWA
2.2 配置数据库
# 登录 MySQL,创建数据库和用户
mysql -u root -p
CREATE DATABASE dvwa DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'dvwa_password';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
FLUSH PRIVILEGES;
EXIT;
2.3 配置 DVWA
# 复制配置文件
cp config/config.inc.php.dist config/config.inc.php
# 修改数据库连接信息
vi config/config.inc.php
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'dvwa_password';
2.4 PHP 配置调整
vi /etc/php/7.4/apache2/php.ini
# 修改以下配置
allow_url_fopen = On
allow_url_include = On
file_uploads = On
2.5 启动服务
systemctl restart apache2
# 或
systemctl restart nginx php-fpm
访问 http://your-ip/DVWA/setup.php,点击 "Create / Reset Database" 初始化。
默认登录:admin / password
3. 漏洞模块说明
3.1 SQL 注入(SQL Injection)
| 难度 | 绕过方式 |
|---|---|
| Low | 直接拼接,无过滤:' OR '1'='1 |
| Medium | 使用 MySQL _real_escape_string,需 1 OR 1=1 |
| High | 盲注,页面不显示数据库内容 |
3.2 XSS 跨站脚本(Cross Site Scripting)
| 难度 | 绕过方式 |
|---|---|
| Low | 无过滤,直接执行: |
| Medium | 过滤 ,可用 |
| High | 过滤大部分标签,可用 |
3.3 文件上传(File Upload)
| 难度 | 绕过方式 |
|---|---|
| Low | 直接上传 .php Webshell |
| Medium | MIME 类型检测绕过(改 Content-Type) |
| High | 文件头检测,需上传图片马:copy shell.jpg/b + shell.php output.php |
3.4 命令注入(Command Injection)
| 难度 | 绕过方式 |
|---|---|
| Low | 直接注入:127.0.0.1; cat /etc/passwd |
| Medium | 过滤 ; 和 &&,可用 127.0.0.1 & cat /etc/passwd |
| High | 需绕过空格过滤:127.0.0.1${IFS}cat${IFS}/etc/passwd |
3.5 CSRF(跨站请求伪造)
低/中:直接构造恶意链接;高:需配合 XSS 获取 token。
3.6 Brute Force(暴力破解)
低/中:Hydra 爆破;高:有 Anti-CSRF token,需 Burp Suite 配合。
4. 安全配置建议
# 靶场禁止暴露在公网,仅内网访问
# 在 Apache/Nginx 中配置 IP 访问限制
<Directory /var/www/html/DVWA>
Require ip 10.0.0.0/24 # 仅允许内网
</Directory>
5. 下一步
- Burp Suite 实战 — 用 Burp 工具对 DVWA 发起渗透
- Nmap 漏洞扫描 — 扫描靶场服务器暴露面