想练手又不想碰别人的系统,最省事的办法是在自己机器上跑一套"故意有洞"的应用。Docker 让这件事变成几条命令。
准备工作
- 装 Docker Desktop(Windows / macOS)或 docker + docker-compose(Linux)
- 确认磁盘留出至少 10GB
- 不需要外网 —— 镜像拉好之后可以完全离线跑
一个最小可用环境
建一个 docker-compose.yml:
services:
dvwa:
image: vulnerables/web-dvwa
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
启动:
docker compose up -d
# 浏览器打开 http://127.0.0.1:8080 ,默认账号 admin / password
注意
127.0.0.1:8080:80这个写法:只把端口绑到本机回环。写成8080:80会监听所有网卡,同一 Wi-Fi 下的其他人也能访问到一个满是漏洞的站点 —— 那就不叫练习环境了。
再加一个现代一点的
juice:
image: bkimminich/juice-shop
ports:
- "127.0.0.1:3000:3000"
Juice Shop 覆盖的问题类型更现代(前端逻辑、接口越权等),和 DVWA 互补。
用完就扔
docker compose down # 停掉并删除容器
docker compose up -d # 需要时重新起,环境干净如初
这正是容器比虚拟机方便的地方:搞坏了不用修,删掉重来。
几条纪律
- 端口只绑
127.0.0.1 - 不要在靶场里放任何真实数据
- 练习时不需要给防火墙开洞