Damn Vulnerable Web Application (DVWA) 安全测试实践指南
2026-04-02 09:34:51作者:农烁颖Land
核心功能解析:构建安全测试学习环境
认识DVWA:安全测试的"靶场"工具
Damn Vulnerable Web Application(简称DVWA)是一个特意设计的漏洞练习平台,它通过模拟真实网站中常见的安全缺陷,帮助安全从业者提升漏洞发现与利用技能。与真实网站不同,DVWA的"不安全"特性是经过精心设计的,所有漏洞都处于可控环境中,非常适合安全测试初学者进行实战训练。
核心文件功能速查表
| 文件路径 | 功能描述 | 安全测试价值 |
|---|---|---|
| index.php | 应用入口页面,显示功能菜单 | 测试初始访问流程与权限控制 |
| login.php | 用户认证界面 | 练习账号爆破与会话劫持 |
| config/config.inc.php.dist | 配置模板文件 | 学习数据库连接与安全参数设置 |
| vulnerabilities/ | 各类型漏洞测试模块 | SQL注入、XSS等漏洞实战场景 |
| database/ | 数据库初始化脚本 | 理解应用与数据层交互逻辑 |
Docker部署优势:快速搭建隔离测试环境
DVWA提供容器化部署方案,通过Docker可以在3分钟内完成从环境配置到应用启动的全过程。这种方式不仅避免了复杂的依赖安装,还能确保测试环境与主机系统完全隔离,有效降低误操作风险。
图1:Docker Desktop中运行的DVWA容器状态界面,显示两个运行中的服务组件
快速上手:10分钟启动安全测试之旅
获取项目代码:2步完成本地部署
- 克隆代码仓库到本地目录
git clone https://gitcode.com/gh_mirrors/dv/DVWA cd DVWA - 启动Docker容器集群
⚠️安全提示:请确保在独立的测试网络环境中运行,禁止直接部署在公网可访问的服务器上。docker-compose up -d
初始配置:3步完成环境准备
- 复制配置模板创建实际配置文件
cp config/config.inc.php.dist config/config.inc.php - 访问http://localhost:80 打开DVWA安装页面
- 点击"Create / Reset Database"按钮完成数据库初始化
登录系统:使用默认凭证进入测试平台
- 默认用户名:admin
- 默认密码:password
- 登录后系统自动跳转至安全级别设置页面,建议从"Low"级别开始练习
图2:DVWA容器运行日志界面,显示应用启动过程与网络请求记录
深度配置:定制你的漏洞练习环境
新手友好配置模板
以下是适合初学者的基础配置文件示例(config/config.inc.php):
<?php
$_DVWA = array();
$_DVWA['db_server'] = 'db'; // Docker环境数据库地址
$_DVWA['db_database'] = 'dvwa'; // 数据库名称
$_DVWA['db_user'] = 'dvwa'; // 数据库用户名
$_DVWA['db_password'] = 'p@ssw0rd'; // 数据库密码
$_DVWA['default_security_level'] = 'low'; // 默认安全级别
$_DVWA['disable_authentication'] = false; // 禁用认证(测试用)
?>
安全级别详解:从入门到精通
DVWA提供4级安全强度设置,对应不同难度的漏洞利用场景:
| 安全级别 | 防护强度 | 适合人群 | 核心特点 |
|---|---|---|---|
| Low | 无防护 | 初学者 | 原始漏洞,无任何过滤 |
| Medium | 基础防护 | 进阶学习者 | 简单过滤,可通过绕过技术突破 |
| High | 强化防护 | 安全从业者 | 复杂过滤机制,需高级利用技巧 |
| Impossible | 完全防护 | 安全开发人员 | 展示安全编码最佳实践 |
高级参数对照表
| 参数名称 | 功能说明 | 推荐设置 |
|---|---|---|
| db_server | 数据库服务器地址 | Docker环境使用"db" |
| db_port | 数据库端口 | 默认3306 |
| recaptcha_public_key | 验证码公钥 | 测试环境可留空 |
| allow_url_include | PHP远程文件包含开关 | 仅测试时开启 |
| log_level | 日志记录级别 | 调试时设为DEBUG |
典型使用场景:实战演练安全测试技能
场景一:SQL注入漏洞测试
目标:通过构造恶意输入获取数据库敏感信息
操作步骤:
- 进入"SQL Injection"模块(vulnerabilities/sqli/)
- 在用户ID输入框中提交测试 payload:
1' OR '1'='1 - 观察返回结果,分析数据库查询逻辑
- 使用联合查询获取更多数据:
1' UNION SELECT 1,version(),3 --
结果:成功获取数据库版本、用户名等信息,理解SQL注入原理与基本利用方法。
场景二:文件上传漏洞利用
目标:绕过文件上传限制并执行恶意代码
操作步骤:
- 进入"File Upload"模块(vulnerabilities/upload/)
- 创建包含PHP代码的测试文件(如info.php)
- 尝试直接上传,观察服务器过滤机制
- 根据反馈修改文件名(如info.php.jpg)或内容绕过检测
结果:成功上传并执行PHP文件,掌握文件上传漏洞的常见绕过技巧与防御方法。
风险声明
⚠️ 重要安全提示:DVWA包含故意设计的安全漏洞,严禁在生产环境或连接公网的服务器上部署。建议在完全隔离的虚拟机或容器环境中使用,并采取以下安全措施:
- 仅在本地网络中运行
- 定期清理测试数据
- 完成练习后及时销毁环境
- 不要存储任何真实敏感信息
本工具仅用于安全教育目的,使用者应遵守当地法律法规,未经授权不得对任何真实系统进行测试。因不当使用本工具造成的任何损失,由使用者自行承担责任。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0152- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112
项目优选
收起
暂无描述
Dockerfile
733
4.75 K
Ascend Extension for PyTorch
Python
618
795
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
433
395
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.01 K
1.01 K
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
1.18 K
152
deepin linux kernel
C
29
16
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
145
237
暂无简介
Dart
983
252
昇腾LLM分布式训练框架
Python
166
198
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.68 K
989