disc 后端 Werkzeug debug 控制台的公网入口彻底断开,RCE 风险消除
5009:3011 → 127.0.0.1:5009:3011 · 3009:3001 → 127.0.0.1:3009:3001 · 加 FLASK_DEBUG=0 环境变量
app.run(debug=True) → debug=False · 重新 build 后端镜像 · docker compose up -d --force-recreate
:5009/:3009 外部 TCP 拒绝 · /console → HTTP 404 · /api/health → {"status":"ok"} · disc.dzdt.online 正常
| 端口 | 服务 | 公网可达 | nginx 域名反代 | 风险 |
|---|---|---|---|---|
| 22 | SSH(仅密钥) | ✅ 可达 | — | 正常 |
| 80 / 443 | nginx 反向代理 | ✅ 可达 | 所有站点入口 | 正常 |
| 5009 | disc 后端 Flask/Werkzeug | ❌ 已关闭 | — | ✅ 已修复 |
| 3009 | disc 前端 proxy.js | ❌ 已关闭 | disc.dzdt.online ✓ | ✅ 已修复 |
| 3008 | capital 前端 | ✅ 公网 | capital.dzdt.online | 🟠 高·明文裸暴 |
| 5008 | capital 后端 (Express) | ✅ 公网 | capital.dzdt.online | 🟠 高·API 明文 |
| 8787 | 宝塔管理面板 | ✅ 公网 | — | 🟡 中·无IP白名单 |
| 888 | 宝塔 nginx 工具端口 | ❌ SG 拦截 | — | 正常 |
| 3006 | zhinanzhen 后端 | ❌ SG 拦截 | zhinanzhen.dzdt.online | 正常 |
| 3011·3016 5000·5001 5018·11005 11006 |
各项目(navigator/work/诊断/bizcanvas/ia/merak) | ❌ 无监听 | 各自域名 ✓ | 🟡 SG陈旧放行 |
disc-tool-backend-1 以 Flask dev server 运行(debug=True),容器绑 0.0.0.0:5009,安全组放行。http://175.178.82.21:5009/console 返回 Werkzeug 交互式 Python Shell,任意人可执行代码(RCE)。
capital 两个容器绑定 0.0.0.0 且安全组放行 3008/5008,公网可直接明文 HTTP 访问,绕过 nginx 的 TLS/限流/访问控制。
5008 后端响应头 X-Powered-By: Express、Access-Control-Allow-Origin: http://175.178.82.21:3008(明文 IP),暗示前端可能走明文 IP 调用后端,用户数据在公网裸传。
-
docker-compose找到 capital 的 compose 文件,把两个容器端口加
127.0.0.1:前缀,docker compose up -d --force-recreate重建(不需要 rebuild 镜像)。 -
安全组删除腾讯云安全组 TCP:3008 和 TCP:5008 的入站放行规则。
-
根治capital 后端 CORS 改为
https://capital.dzdt.online,前端 API 地址改为 HTTPS 域名,确保全链路 TLS。
8787 外部实测可连。面板已开 HTTPS + 安全入口路径 /tencentcloud(直打 /login 返回 404),但无 IP 白名单——任意 IP 均可访问安全入口并尝试暴力破解。宝塔历史上是高价值入侵目标(101 服务器入侵即源于此)。
203.86.124.120);或在腾讯云安全组把 TCP:8787 来源改为具体 IP,而非 0.0.0.0/0。
这 7 个端口安全组标注了项目名并设为「允许」,但当前无公网监听(对应容器绑 127.0.0.1,走 nginx 访问),外部测试均超时不可达。
风险:若将来某容器不慎改绑 0.0.0.0,安全组直接放行,裸奔且无人察觉。建议清理为「不用即删」。
2026-06-21 手动完成。disc 后端 debug 控制台公网入口断开,RCE 风险归零。
2026-06-21 21:20 完成。debug=False、端口绑 127.0.0.1、重建容器,验证通过。
docker-compose 两容器端口加 127.0.0.1: 前缀,重建,然后安全组删除 TCP:3008 / TCP:5008 放行。同步修复后端 CORS origin 改为 HTTPS 域名。
宝塔面板 → 安全 → 限制 IP,或安全组把 8787 来源限制至信任 IP 范围。
删除 3011/3016/5000/5001/5018/11005/11006 放行项,建立「不用即删」安全组管理原则。