写在前面#
仅供学习与研究,切莫违反社区共识进行攻击行为。
分析#
前端#
通过控制台,可以获取到到网站采用的是 GZTimeWalker 的 GZCCTF 项目的 v0.15.4 版本。虽然网站未更新至最新发布的该项目在近日发布 v0.15.5,但是新发布的版本仅修复了一些小 Bug ,且目前并未有大型安全修复,故前端方面尚属安全。
后端#
在阅读完 GZCCTF 部署文档后,得知该项目部署方式为 k8s 与 Docker 的混合方式,通过对 docker-compose.yml 的分析,可以得出该项目部署所拉取的 Docker 镜像为 gztime/gzctf,选取 latest tag 进行分析,发现该镜像基于 Debian 系进行打包,采用 ASPNET 与 .NET 7.0.9 作为反向代理,该版本 .NET 为近期发布,且 Docker 逃逸难度极高,故后端防御尚属安全。
端口与系统#
测试后可知,服务器仅开放 80 与 22 端口,其中 22 端口用于 SSH 服务,采用的是 OpenSSH 8.2p1 服务端,而 80 端口的反向代理使用的是 Microsoft Kestrel 与 ASPNET。通过 TTL 等数据包收发细节分析猜测服务器系统为 Ubuntu 20.04。
对影响到 OpenSSH 8.2p1 的 CVE 进行分析,两枚集中于拥有 SSH 访问或文件写入权限后提权或进行代码注入(CVE-2020-12062,CVE-2020-15778),四枚集中于服务端开启 SSH 代理隧道或不常用配置(CVE-2021-28041,CVE-2021-36368,CVE-2021-41617,CVE-2023-28531),均无法在未取得 SSH 普通用户访问权限的前提下进行,但仍推荐尽快将 SSH 进行更新。
IP 部分#
经查询可知,ip 归属地为 HK,风险等级较低,预计可能是机房托管或较原生的 ISP 提供商,但也不排除内网映射的可能性。由于未绑定域名,采取公开 IP 与 HTTP 1.1 明文。由于某些地区存在的特殊情况,存在通过大量敏感词组来触发关键封锁机制的可能性,这将导致服务器在某些地区无法通过 ip 直接访问。
结论与建议#
-
目前安全状况尚属良好,但仍有隐患。
-
建议升级 OpenSSH 以防范旧版本未来可能被挖掘的漏洞,并可采取措施限制 SSH 的访问,例如限制指定 IP ,或采用虚拟局域网方案。
-
及时保持与上游存储库同步,定期检查防止逃逸。
-
建议绑定域名,并采用 Nginx 等进行反向代理 Docker 或 K8S 端口,并套用 CDN 隐藏服务器真实 IP,亦可尽量缓解 DDos。采取 HTTPS 加密以防中间人攻击与数据监听。