DVWA 环境搭建:用 Docker 把 Web 安全练习场搬进本机
【免费下载链接】DVWADamn Vulnerable Web Application (DVWA)项目地址: https://gitcode.com/gh_mirrors/dv/DVWA
DVWA(Damn Vulnerable Web Application)是一个故意写满漏洞的 PHP/MariaDB Web 应用,用来在受控环境里练习 SQL 注入、跨站脚本、文件上传等最常见的 Web 漏洞。本文围绕 DVWA 环境搭建展开:用 Docker Compose 一次拉起应用与数据库两个容器,几分钟内进入可以动手练习的状态。
先看清楚:靶场里能练什么
动手部署前,值得先花一分钟浏览"练习菜单"。所有漏洞按模块组织在 vulnerabilities/ 目录下:SQL 注入与盲注各有独立实验,反射型 XSS、存储型 XSS、DOM 型 XSS、文件上传、命令执行、CSRF、暴力破解、验证码、加密攻击等模块覆盖主流攻击面。每个实验都提供 low、medium、high、impossible 四档难度:low 基本不做防护,方便直接观察漏洞的原始形态;medium 和 high 分别加入过滤和较强的防护,需要思考绕过手法;impossible 则展示"正确写法"长什么样。官方还特意在代码里留了几个未公开的漏洞,练习之余也值得自己翻一翻。
把靶场跑起来:从克隆到访问
前提是装好 Docker 与 Docker Compose,终端里执行:
docker version docker compose version两条命令都能打印出版本号即可。接着获取代码并启动服务:
git clone https://gitcode.com/gh_mirrors/dv/DVWA cd DVWA docker compose up -d全部编排都写在 compose.yml 里:dvwa服务使用 php:8-apache 镜像(容器内已用 Composer 装好 API 模块的依赖),db服务是 MariaDB 10,数据落在名为dvwa的命名卷里,数据库账号 dvwa / p@ssw0rd 均已预置。浏览器打开http://localhost:4280即可看到登录页。容器默认监听 4280 而不是 80,是为了避开宿主机可能已占用的 80 端口;端口映射写作127.0.0.1:4280:80,也意味着服务只对本机开放。
跑起来之后的三件事
- 用默认账号登录:用户名
admin,密码password。 - 点击顶部菜单的Setup DVWA,再点Create / Reset Database,一次性建好
dvwa库并写入示例数据。注意这个操作会清掉并重建配置里的数据库,所以别把 DVWA 指向任何一个正在使用的库。 - 切换安全级别:默认是 impossible,所有实验都处于防护状态,不适合入门练习。在页面右上角的下拉框里改到 low 再开始。
如果页面打不开或提示数据库错误,先查容器日志定位问题:
docker compose logs两个值得按需修改的配置
端口。4280 有冲突时,把 compose.yml 中的端口绑定改成例如127.0.0.1:8806:80,重启容器后访问http://localhost:8806。若要让局域网其他机器也能访问(比如给培训用),可以去掉127.0.0.1:前缀,但请先读完下一节。
默认行为。大部分选项不用改文件,直接用环境变量传入,变量名清单见 config/config.inc.php.dist。例如在 compose.yml 的 dvwa 服务里追加:
environment: - DB_SERVER=db - DEFAULT_SECURITY_LEVEL=low之后每次登录的默认级别就是 low。同样的方式还能设置DISABLE_AUTHENTICATION(部分不擅长处理 Cookie 的测试工具需要关掉登录)和DEFAULT_LOCALE=zh(帮助页用中文)。改动过本地代码时,可把pull_policy从always改为build,或解开 compose.yml 里的 volumes 注释让容器直接挂载本地目录,改完即生效。
别让靶场暴露给公网
官方 README 开头就有一句警告:DVWA 确实极度脆弱,绝不要把它部署到面向互联网的服务器或公共主机上,否则很快会被攻陷。稳妥的做法是放在 NAT 网络的虚拟机里,或者保持本文默认的本机回环绑定。另外别小看默认密码——它很容易被猜出来,练习结束后养成用docker compose down停掉并清理容器的习惯。
环境跑通之后,建议从 SQL 注入 模块的 low 级别入手:先输入最经典的注入语句,观察结果差异,再逐级升到 medium、high,最后切到 impossible 对照正确实现;找一找那几个官方没写进文档的漏洞,也是这份靶场的一部分乐趣。
【免费下载链接】DVWADamn Vulnerable Web Application (DVWA)项目地址: https://gitcode.com/gh_mirrors/dv/DVWA
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考