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

📅 2026/8/23 13:58:26
DVWA Web 漏洞靶场保姆级指南:5 分钟跑通,19 个模块带你练完 SQL 注入和 XSS
DVWA Web 漏洞靶场保姆级指南5 分钟跑通19 个模块带你练完 SQL 注入和 XSS【免费下载链接】DVWADamn Vulnerable Web Application (DVWA)项目地址: https://gitcode.com/gh_mirrors/dv/DVWADamn Vulnerable Web Application简称 DVWA是一个刻意写得漏洞百出的 PHP/MariaDB 练习网站SQL 注入、跨站脚本XSS、文件上传、命令执行这些常见 Web 漏洞它每个都给你造好了入口并且按 low / medium / high / impossible 四档难度分层。对新手来说它就是那个可以放心打、不用担心误伤别人的 Web 安全练功房。先分清这个靶场适合谁又有一条红线DVWA 的官方定位很明确帮安全从业者在合法环境里练手、帮 Web 开发者理解防护思路、帮老师和学生在教室里教 Web 安全。适合的人群大致三类零基础想入门 Web 安全的学生先在这里把漏洞打出来一遍会写代码、但没系统练过攻防的开发用来理解为什么参数不校验会出事需要带团队的讲师或内训组织者每个模块页面底部都自带帮助说明和提示天然适合课堂演示。不过有一条边界必须说在前面⚠️DVWA 只能部署在你自己的电脑、虚拟机或内网隔离环境里严禁发布到公网或任何对外服务的服务器上。它的全部价值就在于不设防一旦暴露到 Internet几秒内就会被扫描器锁定你的机器会立刻成为肉鸡。官方 README 里也专门用加粗警告了这一点。装之前环境和端口两件事如果你打算用 Docker 一键跑下文默认路线前置要求只有一个装好 Docker 和 Docker ComposeDocker Desktop 默认都带。docker version docker compose version两条命令都能输出版本号就可以直接开始。如果你更想手动搭一套Windows 上通常是 XAMPPDebian/Ubuntu 上是 Apache MariaDB依赖大致是PHP建议 7.3 以上PHP 5 已不受支持 ApacheMariaDB官方更推荐它而不是 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 自动注入。启动后可以随时在终端看日志确认两个容器都 Runningdocker compose logs第三步浏览器打开http://localhost:4280。首次进入没有登录框这是正常的——它还在等你初始化数据库。进网页建库点两下按钮顺便记牢默认账号在页面顶部菜单里进入Setup页你会看到环境自检列表PHP 版本、mysqli、gd 等扩展是否就绪确认没有红色报错后点Create / Reset Database按钮数据库和示例数据就建好了。这里有个必须记住的坑⚠️Create / Reset Database 会把目标数据库整个删掉重建。所以这个数据库应该专门给 DVWA 用别复用你项目里存了业务数据的库。这一点在 config/config.inc.php.dist 顶部注释里写得很清楚。建完库登录账号是默认写死在文档里的用户名admin密码password练习暴力破解、认证绕过等模块时这个默认账号本身就是你最好的靶子。第一次进靶场怎么玩难度、源码和练习顺序登录后左侧菜单就是全部 19 个漏洞模块。每个模块的玩法都一样切难度页面右上或顶部的 Security 下拉框low最脆弱、impossible基本无懈可击看源码每个模块都有source/目录把low.php和impossible.php并排对比你能直观看到少写了两行校验代码会导致什么后果看提示页面底部 Help 按钮打开官方提示卡住了就看一眼别干憋按自己的节奏走可以固定一个难度横向把所有模块通关也可以单点突破比如只在 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.mdREADME.md数据库各难度初始化脚本想手动复现数据时看database/旧版本更新记录了解哪些漏洞是后来加上的CHANGELOG.mdSQLi 模块支持切换 SQLite 后端切换方式在 config/config.inc.php.dist 的SQLI_DB注释里有说明觉得 DVWA 通关后不够难可以再去找 OWASP 的同类训练项目和更复杂的虚拟靶场继续进阶照这篇文章走完一遍你应该已经能回答三个问题每个漏洞在低难度下长什么样、加两行防护代码为什么就免疫了、以及为什么同样的代码绝对不能上线到公网。能答上来这五分钟的靶场就没白跑。【免费下载链接】DVWADamn Vulnerable Web Application (DVWA)项目地址: https://gitcode.com/gh_mirrors/dv/DVWA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考