The GZ::CTF project, an open source CTF platform.
See the codeGZ::CTF is an open source CTF platform based on ASP.NET Core.
[!IMPORTANT]
To save your effort, please read the documentation carefully before using: https://gzctf.gzti.me/
[!WARNING]
Upgrade and migration considerations:
- To upgrade the platform, simply pull the latest image and restart, and the database migration will be performed automatically. Images are published only to Docker Hub (
gztime/gzctf) and GitHub Container Registry (ghcr.io/gztimewalker/gzctf/gzctf).- In general, downgrade operations are not supported. Upgrading versions with a large time span may result in data incompatibility, so please make sure to back up your data.
- After the upgrade, there may be new configuration items and changes in file structure. It is recommended to consult the official documentation or the community.
- If you are migrating to another branch project, please pay attention to whether the database structure has changed. The database after the change does not support rollback to the original version.
- The community and the official maintainers are not responsible for data loss, data incompatibility, and other issues. For issues with branch projects, please contact the corresponding project maintainer.
Create highly customizable challenges
Type of challenges: Static Attachment, Dynamic Attachment, Static Container, Dynamic Container
Dynamic Scores
Curve of scores:
$$f(S, r, d, x) = \left \lfloor S \times \left[r + ( 1- r) \times \exp\left( \dfrac{1 - x}{d} \right) \right] \right \rfloor $$
Where $S$ is the original score, $r$ is the minimum score ratio, $d$ is the difficulty coefficient, and $x$ is the number of submissions. The first three parameters can be customized to satisfy most of the dynamic score requirements.
Bonus for first three solves: The platform rewards 5%, 3%, and 1% of the current score for the first three solves respectively.
Disable or enable challenges during the competition, and release new challenges at any time.
Dynamic flag sharing detection, optional flag template, leet flag
Teams score timeline, scoreboard. Teams can be grouped
Dynamic container distribution, management, and multiple port mapping methods based on Docker or K8s
Real-time competition notification, competition events and flag submission monitoring, and log monitoring based on SignalR
SMTP email verification, malicious registration protection based on Cloudflare Turnstile
Ban specific user, three-level user permission management
Optional team review, invitation code, registration email restriction
Writeup collection, review, and batch download in the platform
Download exported scoreboard, export all submission records
Monitor submissions and major event logs during the competition
Challenges traffic forwarding based on TCP over WebSocket proxy, configurable traffic capture
Cluster cache based on Redis, database storage backend based on PGSQL
Storage backend based on local disk and object storage (RustFS, S3, etc.)
Customizable global configuration, platform title, record information
Support for dark mode, multiple languages, and custom themes
Customizable website footer, website favicon, and html description for SEO
Support metrics and distributed tracing
And more...
Currently, the platform supports multiple languages, and the translation progress is as follows:
These translations are not perfect, and we need your help to improve them.
If you are interested in contributing to the translation, please refer to the Crowdin project.

Some event organizers have already chosen GZCTF and successfully completed their competitions. Their trust, support, and timely feedback are the primary driving force behind the continuous improvement of GZCTF.
These list is not in any particular order, and PRs are welcome for additions.
Thanks to NanoApe, the organizer of THUCTF 2022, for providing sponsorship and conducting Alibaba Cloud public network stress testing. This helped validate the service stability of the GZCTF standalone instance (16c90g) under the pressure of thousands of concurrent requests and 1.34 million requests in three minutes.
GZCTF is dual-licensed:
Core Source Code: Licensed under the GNU Affero General Public License v3.0 (AGPLv3). This covers the main part of the project, granting you broad freedoms to use, modify, and distribute. See LICENSE.txt for details.
Restricted Components: Licensed under the custom GZCTF Restricted License (LicenseRef-GZCTF-Restricted).
PROPRIETARY_COMPONENTS.md file.license/LicenseRef-GZCTF-Restricted.txt for the detailed terms.When deploying a modified version of GZCTF as a public service, you are required to:
TRADEMARKS.md. Descriptive references (e.g., "Forked from GZCTF") are permitted, but no official endorsement should be implied.See also the NOTICE file for consolidated copyright and trademark statements.
447 followers · starred Aug 2022
341 followers · starred Feb 2026
222 followers · starred Mar 2023
549 followers · starred Jan 2026
The GZ::CTF project, an open source CTF platform.
See the codeGZ::CTF is an open source CTF platform based on ASP.NET Core.
[!IMPORTANT]
To save your effort, please read the documentation carefully before using: https://gzctf.gzti.me/
[!WARNING]
Upgrade and migration considerations:
- To upgrade the platform, simply pull the latest image and restart, and the database migration will be performed automatically. Images are published only to Docker Hub (
gztime/gzctf) and GitHub Container Registry (ghcr.io/gztimewalker/gzctf/gzctf).- In general, downgrade operations are not supported. Upgrading versions with a large time span may result in data incompatibility, so please make sure to back up your data.
- After the upgrade, there may be new configuration items and changes in file structure. It is recommended to consult the official documentation or the community.
- If you are migrating to another branch project, please pay attention to whether the database structure has changed. The database after the change does not support rollback to the original version.
- The community and the official maintainers are not responsible for data loss, data incompatibility, and other issues. For issues with branch projects, please contact the corresponding project maintainer.
Create highly customizable challenges
Type of challenges: Static Attachment, Dynamic Attachment, Static Container, Dynamic Container
Dynamic Scores
Curve of scores:
$$f(S, r, d, x) = \left \lfloor S \times \left[r + ( 1- r) \times \exp\left( \dfrac{1 - x}{d} \right) \right] \right \rfloor $$
Where $S$ is the original score, $r$ is the minimum score ratio, $d$ is the difficulty coefficient, and $x$ is the number of submissions. The first three parameters can be customized to satisfy most of the dynamic score requirements.
Bonus for first three solves: The platform rewards 5%, 3%, and 1% of the current score for the first three solves respectively.
Disable or enable challenges during the competition, and release new challenges at any time.
Dynamic flag sharing detection, optional flag template, leet flag
Teams score timeline, scoreboard. Teams can be grouped
Dynamic container distribution, management, and multiple port mapping methods based on Docker or K8s
Real-time competition notification, competition events and flag submission monitoring, and log monitoring based on SignalR
SMTP email verification, malicious registration protection based on Cloudflare Turnstile
Ban specific user, three-level user permission management
Optional team review, invitation code, registration email restriction
Writeup collection, review, and batch download in the platform
Download exported scoreboard, export all submission records
Monitor submissions and major event logs during the competition
Challenges traffic forwarding based on TCP over WebSocket proxy, configurable traffic capture
Cluster cache based on Redis, database storage backend based on PGSQL
Storage backend based on local disk and object storage (RustFS, S3, etc.)
Customizable global configuration, platform title, record information
Support for dark mode, multiple languages, and custom themes
Customizable website footer, website favicon, and html description for SEO
Support metrics and distributed tracing
And more...
Currently, the platform supports multiple languages, and the translation progress is as follows:
These translations are not perfect, and we need your help to improve them.
If you are interested in contributing to the translation, please refer to the Crowdin project.

Some event organizers have already chosen GZCTF and successfully completed their competitions. Their trust, support, and timely feedback are the primary driving force behind the continuous improvement of GZCTF.
These list is not in any particular order, and PRs are welcome for additions.
Thanks to NanoApe, the organizer of THUCTF 2022, for providing sponsorship and conducting Alibaba Cloud public network stress testing. This helped validate the service stability of the GZCTF standalone instance (16c90g) under the pressure of thousands of concurrent requests and 1.34 million requests in three minutes.
GZCTF is dual-licensed:
Core Source Code: Licensed under the GNU Affero General Public License v3.0 (AGPLv3). This covers the main part of the project, granting you broad freedoms to use, modify, and distribute. See LICENSE.txt for details.
Restricted Components: Licensed under the custom GZCTF Restricted License (LicenseRef-GZCTF-Restricted).
PROPRIETARY_COMPONENTS.md file.license/LicenseRef-GZCTF-Restricted.txt for the detailed terms.When deploying a modified version of GZCTF as a public service, you are required to:
TRADEMARKS.md. Descriptive references (e.g., "Forked from GZCTF") are permitted, but no official endorsement should be implied.See also the NOTICE file for consolidated copyright and trademark statements.
447 followers · starred Aug 2022
341 followers · starred Feb 2026
222 followers · starred Mar 2023
549 followers · starred Jan 2026