news 2026/8/23 13:58:24

DVWA Web 漏洞靶场保姆级指南:5 分钟跑通,19 个模块带你练完 SQL 注入和 XSS

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DVWA Web 漏洞靶场保姆级指南:5 分钟跑通,19 个模块带你练完 SQL 注入和 XSS

DVWA Web 漏洞靶场保姆级指南:5 分钟跑通,19 个模块带你练完 SQL 注入和 XSS

【免费下载链接】DVWADamn Vulnerable Web Application (DVWA)项目地址: https://gitcode.com/gh_mirrors/dv/DVWA

Damn Vulnerable Web Application(简称 DVWA)是一个刻意写得"漏洞百出"的 PHP/MariaDB 练习网站:SQL 注入、跨站脚本(XSS)、文件上传、命令执行这些常见 Web 漏洞,它每个都给你造好了入口,并且按 low / medium / high / impossible 四档难度分层。对新手来说,它就是那个"可以放心打、不用担心误伤别人"的 Web 安全练功房。

先分清:这个靶场适合谁,又有一条红线

DVWA 的官方定位很明确:帮安全从业者在合法环境里练手、帮 Web 开发者理解防护思路、帮老师和学生在教室里教 Web 安全。

适合的人群大致三类:

  • 零基础想入门 Web 安全的学生,先在这里把漏洞"打出来"一遍;
  • 会写代码、但没系统练过攻防的开发,用来理解"为什么参数不校验会出事";
  • 需要带团队的讲师或内训组织者,每个模块页面底部都自带帮助说明和提示,天然适合课堂演示。

不过有一条边界必须说在前面:

⚠️DVWA 只能部署在你自己的电脑、虚拟机或内网隔离环境里,严禁发布到公网或任何对外服务的服务器上。它的全部"价值"就在于不设防,一旦暴露到 Internet,几秒内就会被扫描器锁定,你的机器会立刻成为肉鸡。官方 README 里也专门用加粗警告了这一点。

装之前:环境和端口两件事

如果你打算用 Docker 一键跑(下文默认路线),前置要求只有一个:装好 Docker 和 Docker Compose(Docker Desktop 默认都带)。

docker version docker compose version

两条命令都能输出版本号,就可以直接开始。

如果你更想"手动搭一套"(Windows 上通常是 XAMPP,Debian/Ubuntu 上是 Apache + MariaDB),依赖大致是:

  • PHP(建议 7.3 以上,PHP 5 已不受支持)+ Apache
  • MariaDB(官方更推荐它而不是 MySQL,开箱即用,不需要额外改配置)
  • API 模块还需要 Apache 开启mod_rewrite,并在vulnerabilities/api下装 Composer 依赖(详见 README.md 的 Linux Packages / Apache Modules 一节)

第二个容易踩的坑是端口:Docker 方式下 DVWA 不是跑在 80 端口,而是映射到4280,且 compose.yml 里默认只绑定127.0.0.1,也就是只允许本机能访问——这其实是官方帮你做的一层"不上公网"的保险,访问时记得用http://localhost:4280

5 分钟跑起你的第一个 DVWA 靶场

整个过程就三步,全程不需要手动建库、不需要配数据库账号(Docker 编排文件里已经内置了一个dvwa用户)。

第一步,把仓库克隆下来:

git clone https://gitcode.com/gh_mirrors/dv/DVWA.git cd DVWA

第二步,一键启动:

docker compose up -d

它会在容器里拉起两个服务:一个 PHP + Apache 的应用容器,一个 MariaDB 10 数据库容器(账号密码由 compose.yml 自动注入)。

启动后可以随时在终端看日志确认两个容器都 Running:

docker compose logs

第三步,浏览器打开http://localhost:4280。首次进入没有登录框,这是正常的——它还在等你初始化数据库。

进网页建库:点两下按钮,顺便记牢默认账号

在页面顶部菜单里进入Setup页,你会看到环境自检列表(PHP 版本、mysqli、gd 等扩展是否就绪),确认没有红色报错后,点Create / Reset Database按钮,数据库和示例数据就建好了。

这里有个必须记住的坑:

⚠️Create / Reset Database 会把目标数据库整个删掉重建。所以这个数据库应该专门给 DVWA 用,别复用你项目里存了业务数据的库。这一点在 config/config.inc.php.dist 顶部注释里写得很清楚。

建完库,登录账号是默认写死在文档里的:

  • 用户名:admin
  • 密码:password

(练习暴力破解、认证绕过等模块时,这个默认账号本身就是你最好的"靶子"。)

第一次进靶场怎么玩:难度、源码和练习顺序

登录后左侧菜单就是全部 19 个漏洞模块。每个模块的玩法都一样:

  1. 切难度:页面右上(或顶部)的 Security 下拉框,low最脆弱、impossible基本无懈可击;
  2. 看源码:每个模块都有source/目录,把low.phpimpossible.php并排对比,你能直观看到"少写了两行校验代码"会导致什么后果;
  3. 看提示:页面底部 Help 按钮打开官方提示,卡住了就看一眼,别干憋;
  4. 按自己的节奏走:可以固定一个难度横向把所有模块通关,也可以单点突破(比如只在 SQL 注入里从 low 一路打到 impossible)。官方还故意留了文档未提及的隐藏漏洞,鼓励你自己去发现。

各模块对应的代码都在vulnerabilities/目录下的同名子文件夹里,练习时随时可以翻源码对照:

模块练什么对应目录
SQL Injection经典报错/联合注入vulnerabilities/sqli/
Blind SQLi布尔/时间盲注vulnerabilities/sqli_blind/
XSS (Reflected/Stored/DOM)反射、存储、DOM 型 XSSvulnerabilities/xss_r/ 等
File Upload绕过文件类型校验vulnerabilities/upload/
File Inclusion包含任意文件vulnerabilities/fi/
Command Execution系统命令注入vulnerabilities/exec/
CSRF跨站请求伪造vulnerabilities/csrf/
Brute Force / CAPTCHA撞库与验证码绕过vulnerabilities/brute/ 等
Auth Bypass / Backdoor认证绕过、后门文件vulnerabilities/authbypass/ 等
Weak ID / Open Redirect / CSP弱口令、开放重定向、CSPvulnerabilities/weak_id/ 等
API接口层面的鉴权与越权问题vulnerabilities/api/

如果你要练 Burp Suite、OWASP ZAP 这类抓包扫描工具,DVWA 的每个模块都是现成的靶标,配合四档难度,正好可以观察工具在不同防护水位下的表现。

安全与伦理红线:练完记得收摊

再重复一遍最重要的三件事,练之前、练之后各读一次:

  • 🔒只在自己可控的环境里跑:本机、虚拟机(NAT 网络模式)或隔离内网。Docker 路线默认只监听127.0.0.1:4280,不要改绑公网地址;
  • 🔒别改默认密码后忘记它,也别用它去攻击别的网站——DVWA 上的每一个漏洞手法,放到没有授权的真实系统上都是违法行为;
  • 🔒用完就清理:不再练习时执行docker compose down停掉容器;如果连数据都不要了,把项目目录删掉即可,别把这套源码留在任何长期开机的机器上。

进阶:往更深处走

  • 完整安装文档和多语言说明(含中文版 README.zh.md):README.md
  • 数据库各难度初始化脚本(想手动复现数据时看):database/
  • 旧版本更新记录,了解哪些漏洞是后来加上的:CHANGELOG.md
  • SQLi 模块支持切换 SQLite 后端,切换方式在 config/config.inc.php.dist 的SQLI_DB注释里有说明
  • 觉得 DVWA 通关后"不够难",可以再去找 OWASP 的同类训练项目和更复杂的虚拟靶场继续进阶

照这篇文章走完一遍,你应该已经能回答三个问题:每个漏洞在低难度下长什么样、加两行防护代码为什么就免疫了、以及为什么同样的代码绝对不能上线到公网。能答上来,这五分钟的靶场就没白跑。

【免费下载链接】DVWADamn Vulnerable Web Application (DVWA)项目地址: https://gitcode.com/gh_mirrors/dv/DVWA

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 13:56:45

PDFMathTranslate:免费公式级PDF论文翻译

PDFMathTranslate:免费公式级PDF论文翻译 【免费下载链接】PDFMathTranslate [EMNLP 2025 Demo] PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务&…

作者头像 李华
网站建设 2026/8/23 13:55:46

单链表专题

前言 顺序表和单链表都是两种常见的数据结构,他们的区别究竟在哪里? 顺序表:顺序表是一种连续的存储结构,数据元素在内存中占据一块连续的空间。因为连续空间存储的特性,顺序表可以直接通过下表遍历元素。 单链表&a…

作者头像 李华
网站建设 2026/8/23 13:52:02

从awesome-python3-webapp到iOS App:跨平台开发实战经验完整指南

从awesome-python3-webapp到iOS App:跨平台开发实战经验完整指南 【免费下载链接】awesome-python3-webapp 小白的Python入门教程实战篇 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-python3-webapp awesome-python3-webapp 是一个面向小白的 Pyth…

作者头像 李华
网站建设 2026/8/23 13:49:23

Xplorer文件管理器完全上手指南:跨平台文件管理一次搞定

Xplorer文件管理器完全上手指南:跨平台文件管理一次搞定 【免费下载链接】xplorer Xplorer, a customizable, modern file manager 项目地址: https://gitcode.com/gh_mirrors/xp/xplorer Xplorer文件管理器是一款免费开源的跨平台文件管理器,Win…

作者头像 李华