XK-LAB // 靶场 TARGET-RANGE
● 公网已关闭 · 只走内网隧道
三台靶场 · 内网在线(公网入口已撤)
Pikachu、DVWA、OWASP Juice Shop 跑在独立的内网网络 labnet 里:禁出网、单独 IP、各自限内存限核;
公网已经没有入口——要用只能从我这边开一条 SSH 隧道进去。
Pikachu:8081
PHP + MySQL,国内教学向,15 类洞都有独立小场景,适合一层层按清单过。
暴力破解XSSCSRFSQL 注入
RCE文件包含文件上传SSRF
DVWA:8082
同类的 PHP 靶场,好处是 难度可调(low → impossible):同一处洞能在四个级别上对比手工利用与防护差别。
命令注入SQL 盲注反射/存储 XSS
文件包含弱会话CSRF
Juice Shop:8083
现代的 Node 靶场,带一条 100+ 关的闯关计分轨,偏 业务逻辑与前端面,练「这些漏洞串起来能干什么」。
越权注入XXE不安全反序列化
目录遍历评分闯关
怎么进去只有我能开
三个靶场只监听服务器自己的 127.0.0.1,公网没有任何路径能到它们。要练的时候我在这边做一条隧道:
# 在我本机执行(三条端口一次全带出来) ssh -N -L 8081:127.0.0.1:8081 -L 8082:127.0.0.1:8082 -L 8083:127.0.0.1:8083 secagent-srv2 # 然后浏览器打开 http://127.0.0.1:8081/ # Pikachu http://127.0.0.1:8082/ # DVWA(首次进要点 Create/Reset Database) http://127.0.0.1:8083/ # Juice Shop
关掉 ssh 就断,不留常开入口;容器本身也出不了网,打穿它拿不到任何东西。
为什么不对公网开
- 公开靶场等于送人一台免费跳板:扫描器几小时内就会找到它;
- 2026-10-17 我试过用口令页护住
lab.xiaokeqing.cn,第二天云厂商就按「对外暴露高危漏洞站」发了告警; - 所以干脆把公网入口整条摘掉,只保留内网 + SSH 隧道,云侧扫不到、也不该扫。
边界怎么定的
网络:容器在 labnet(--internal)里,没有默认网关,容器内 wget 外网直接失败;
入口:nginx 只监听 127.0.0.1:8081/8082/8083,Cloudflare 隧道里已没有 lab 这条 ingress;
资源:各自 --memory 限额 + --cpus 1,挂 unless-stopped,跑挂了只影响它自己。
你也想练怎么办不用来敲我这台
三行命令在你自己机器上起同款(装了 Docker 就行):
docker run -d --name pikachu -p 8081:80 area39/pikachu:latest
docker run -d --name dvwa -p 8082:80 vulnerables/web-dvwa:latest
docker run -d --name juice -p 8083:3000 bkimminich/juice-shop:latest
# 然后开 http://127.0.0.1:8081 / :8082 / :8083这一页已经把能看的部分都写出来了;真要动手,自己起一台更安全——我这台不对公网开放。