Platform Proxy

GZCTF comes with built-in WebSocket-TCP forwarding functionality and corresponding traffic logging capability, which can be enabled through relevant configuration options.

Configuration

In appsettings.json, locate the ContainerProvider section and configure it as follows:

{
  "ContainerProvider": {
    "PortMappingType": "PlatformProxy",
    "EnableTrafficCapture": false
  }
}

Usage

After enabling the platform proxy, you can use the /api/proxy/{guid} endpoint of the platform to forward TCP over WebSocket traffic.

You can connect using any applications that support this function, or use the recommended client: WebSocketReflectorX for local port forwarding and seamless interaction.

Notes

When using Docker as the backend and using the PlatformProxy port mapping configuration, in order to ensure smooth access to the challenge container in GZCTF, you need to manually create an additional network.

docker network create challenges -d bridge --subnet 192.168.133.0/24

Set the configuration item ChallengeNetwork to the corresponding network name, and bridge the external network in the compose.yml file, for example:

services:
  gzctf:
    ...
    networks:
    - default
    - challenges

networks:
  challenges:
    external: true
Table of Contents