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

这一页已经把能看的部分都写出来了;真要动手,自己起一台更安全——我这台不对公网开放。