WebSocketReflectorX 开发小记

· Reverier Xu · Nov. 12, 2022, 2:08 p.m.
Summary
需求   在 CTF 比赛中经常会有动态类型的题目,每个选手都拥有自己的题目容器,与其他选手的环境相互隔离,不同容器中的 flag 值也各不相同。这样能够显著提升作弊成本进而减少作弊行为,对于一些简陋的作弊行为也可以直接查处;同时也能够避免选手在做题过程中对题目环境造成不可逆的破坏,从而耽误其他选手的解题过程;当选手无意对自己的环境造成破坏后,也可以自助重启容器来恢复做题环境。   对于动态题目而言,目前已经有一些比较成熟的解决方案了,例如 frankli0324/CTFd-Whale 等等,但是总有一些不妙的地方,使得这些解决方案在某些场景下会受到各种各样的限制。   如何让选手舒适的访问到容器一直是比赛平台开发中一件难以解决的需求,对于某些限制颇多的场景下越是如此。我们就遇到了这样的一个场景: 学校服务器仅拥有一个单域名解析,不支持泛域名,不支持自行签发证书,所有流量需要通过 CDN 转发,再通过堡垒机审计之后解密成明文HTTP流量,再转发给我们的服务器。我们对 CDN、堡垒机、域名均没有控制权,堡垒机安全组也仅开放 堡垒机443端口 -> 服务器80端口 这一条通道,服务器的其...
AUTHOR