{"id":19605152,"url":"https://github.com/gztimewalker/gzctf","last_synced_at":"2026-02-26T18:21:30.460Z","repository":{"id":56757031,"uuid":"467513973","full_name":"GZTimeWalker/GZCTF","owner":"GZTimeWalker","description":"The GZ::CTF project, an open source CTF platform.","archived":false,"fork":false,"pushed_at":"2025-04-12T07:03:45.000Z","size":21588,"stargazers_count":1163,"open_issues_count":6,"forks_count":135,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-04-12T21:18:48.677Z","etag":null,"topics":["asp-net-core","ctf","ctf-platform","ctf-platforms","docker","dotnet-core","gzctf","k3s","k8s","mantine","react"],"latest_commit_sha":null,"homepage":"https://gzctf.gzti.me/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GZTimeWalker.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"GZTimeWalker","ko_fi":"gztime","custom":["https://blog.gzti.me/thanks/"]}},"created_at":"2022-03-08T13:01:42.000Z","updated_at":"2025-04-12T07:03:49.000Z","dependencies_parsed_at":"2023-02-01T05:15:36.389Z","dependency_job_id":"701f372a-8ee2-4bdc-bd34-9d9e47bbbc2a","html_url":"https://github.com/GZTimeWalker/GZCTF","commit_stats":null,"previous_names":[],"tags_count":154,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GZTimeWalker%2FGZCTF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GZTimeWalker%2FGZCTF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GZTimeWalker%2FGZCTF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GZTimeWalker%2FGZCTF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GZTimeWalker","download_url":"https://codeload.github.com/GZTimeWalker/GZCTF/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631891,"owners_count":21136584,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","ctf","ctf-platform","ctf-platforms","docker","dotnet-core","gzctf","k3s","k8s","mantine","react"],"created_at":"2024-11-11T09:41:31.706Z","updated_at":"2026-01-05T16:14:35.387Z","avatar_url":"https://github.com/GZTimeWalker.png","language":"C#","funding_links":["https://github.com/sponsors/GZTimeWalker","https://ko-fi.com/gztime","https://blog.gzti.me/thanks/"],"categories":[],"sub_categories":[],"readme":"\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/banner.dark.svg\"\u003e\n  \u003cimg alt=\"Banner\" src=\"assets/banner.light.svg\"\u003e\n\u003c/picture\u003e\n\n# GZ::CTF\n\n[![publish](https://github.com/GZTimeWalker/GZCTF/actions/workflows/ci.yml/badge.svg)](https://github.com/GZTimeWalker/GZCTF/actions/workflows/ci.yml)\n![version](https://img.shields.io/github/v/release/GZTimeWalker/GZCTF?include_prereleases\u0026label=version)\n![license](https://img.shields.io/github/license/GZTimeWalker/GZCTF?color=FF5531)\n[![Crowdin](https://badges.crowdin.net/gzctf/localized.svg)](https://crowdin.com/project/gzctf)\n[![codecov](https://codecov.io/gh/GZTimeWalker/GZCTF/branch/develop/graph/badge.svg)](https://codecov.io/gh/GZTimeWalker/GZCTF)\n\n[![Telegram Group](https://img.shields.io/endpoint?color=blue\u0026url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fgzctf)](https://telegram.dog/gzctf)\n[![QQ Group](https://img.shields.io/badge/QQ%20Group-903244818-blue)](https://jq.qq.com/?_wv=1027\u0026k=muSqhF9x)\n[![Discord](https://img.shields.io/discord/1239476909033656320?label=Discord)](https://discord.gg/dV9A6ZjVhC)\n\n[English](./README.md), [简体中文](./README.zh.md), [日本語](./README.ja.md)\n\nGZ::CTF は ASP.NET Core を基づいたオープンソース CTF プラットフォーム。\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e **お使いの前にドキュメントを読むことは極めてお勧めします：[https://gzctf.gzti.me/](https://gzctf.gzti.me/ja)**\n\n\u003e [!WARNING]\n\u003e\n\u003e **アップグレードと移行に関する注意事項:**\n\u003e\n\u003e 1. プラットフォームをアップグレードするには、最新のイメージを取得して再起動するだけで、データベースの移行が自動的に行われます。\n\u003e 2. 一般的に、**ダウングレード** 操作はサポートされていません。時間スパンが大きいバージョンのアップグレードは、データの非互換性を引き起こす可能性があるため、**データのバックアップを取ることをお勧めします**。\n\u003e 3. アップグレード後、新しい構成項目やファイル構造の変更がある場合があります。公式ドキュメントやコミュニティに相談することをお勧めします。\n\u003e 4. 別のブランチプロジェクトに移行する場合は、データベース構造が変更されていないかどうかに注意してください。**変更後のデータベースは元のバージョンにロールバックできません**。\n\u003e 5. コミュニティと公式メンテナーは、データの損失、データの非互換性、その他の問題について責任を負いません。ブランチプロジェクトの問題については、対応するプロジェクトメンテナーに連絡してください。\n\n## 機能 🛠️\n\n- 高度カスタマイズ可能なチャレンジを作れる\n\n  - チャレンジ種類：静的アタッチメント、動的アタッチメント、静的コンテイナー、動的コンテイナー\n\n    - 静的アタッチメント：アタッチメントは共有され、追加されたフラッグのどれも提出可能となります。\n    - 動的アタッチメント：チーム数に応じたフラッグやアタッチメントが少なくとも必要となり、チームに応じてアタッチメントやフラッグが配布されます。\n    - 静的コンテイナー：コンテナーのテンプレートは共有され、フラッグは発行されず、追加されたフラッグのどれも提出可能となります。\n    - 動的コンテイナー：フラッグは自動的に生成され、コンテナ環境変数を通じて配布され、各チームのフラッグは一意です。\n\n  - 動的スコアリング\n\n    - スコアリングカーヴ：\n\n      $$f(S, r, d, x) = \\left \\lfloor S \\times \\left[r  + ( 1- r) \\times \\exp\\left( \\dfrac{1 - x}{d} \\right) \\right] \\right \\rfloor $$\n\n      このうち、 $S$ はオリジナルスコア、 $r$ は最低スコア率、 $d$ は難易度係数、 $x$ は提出数です。 最初の 3 つのパラメータは、ほとんどの動的なスコア要件を達成するためにカスタマイズできます。\n\n    - ボーナス：\n      プラットフォームは、ファーストブラッド、セカンドブラッドとサードブラッドに対して、それぞれポイントの 5%、3%、および 1% をボーナスとして与えます。\n\n  - チャレンジはゲーム中に有効または無効にすることができ、複数回公開もできます。\n  - 動的フラッグのチャレンジに対する不正検出機能、オプションのフラッグテンプレートとリートフラッグ機能\n\n- **組織ごとにグループされたチーム**のスコアタイムライン、組織順位表\n- **Docker または K8S** に基づいた動的なコンテナの分散、管理、および複数のポート マッピング方法のサポート\n- SignalR に基づいた**リアルタイム**ゲーム通知、ゲームイベントとフラッグ送信とログの監視\n- SMTP メール検証機能、Cloudflare Turnstile による悪意のある登録防止\n- ユーザーのブロックおよび権限管理\n- オプションのチームレビュー、招待コード、登録メール制限\n- プラットフォーム内での記事の収集、レビューとバッチダウンロード\n- ランキングのダウンロードおよびエクスポート、すべての提出もダウンロードできます\n- ゲーム中の審判監視、提出とメインイベントのログ\n- チャレンジに対するトラフィック **TCP over WebSocket プロキシ転送**、トラフィック キャプチャの設定ができます\n- Redis ベースのクラスター キャッシュ、PGSQL をデータベースとして使用\n- ローカルディスクおよび**オブジェクトストレージ（MinIO、S3 など）**に基づくストレージバックエンド\n- グローバル設定でプラットフォームタイトルと他の情報を設定可能\n- **ダークモード**、多言語、カスタムテーマのサポート\n- **ウェブサイトのフッター**、**ファビコン**、SEO 向け**HTML の説明**のカスタマイズ可能\n- マトリクスと分散トレーシングのサポート\n- その他...\n\n## i18n について 🌐\n\n現在、このプラットフォームは複数の言語をサポートしており、翻訳の進捗状況は以下の通りです。\n\n### コミュニティによる翻訳\n\n- 英語 (en-US)：完全対応、デフォルト言語\n- 簡体字中国語 (zh-CN)：完全対応\n- 繁体字中国語 (zh-TW)：完全対応\n- 日本語 (ja-JP)：完全対応、[Steve](http://github.com/hez2010) による翻訳\n- インドネシア語 (id-ID)：完全対応、[Rio](https://github.com/riodrwn) による翻訳\n- 韓国語 (ko-KR)：完全対応、 [Sy2n0](https://github.com/Sy2n0), [kimjw0427](https://github.com/kimjw0427), [LittleDev0617](https://github.com/LittleDev0617), [Jungwoong Kim](https://github.com/jungwngkim), [blluv](https://github.com/blluv) による翻訳\n- ロシア語 (ru-RU)：完全対応、 [FazaN](https://github.com/CyberFazaN) による翻訳\n- ベトナム語 (vi-VN)：完全対応、[Ethical Hacker Club](https://github.com/FPTU-Ethical-Hackers-Club) による翻訳\n\n### 機械および AI による翻訳\n\n- ドイツ語 (de-DE)\n- フランス語 (fr-FR)\n- スペイン語 (es-ES)\n\nこれらの翻訳は完全ではないため、改善のために皆さんの協力が必要です。\n\n翻訳に貢献することに興味がある方は、[Crowdin プロジェクト](https://crowdin.com/project/gzctf) を参照してください。\n\n## Demo 🗿\n\n![index.webp](assets/images/index.webp)\n![game.list.webp](assets/images/game.list.webp)\n![game.challenges.webp](assets/images/game.challenges.webp)\n![game.scoreboard.webp](assets/images/game.scoreboard.webp)\n![admin.settings.webp](assets/images/admin.settings.webp)\n![admin.challenges.webp](assets/images/admin.challenges.webp)\n![admin.challenge.info.webp](assets/images/admin.challenge.info.webp)\n![admin.challenge.flags.webp](assets/images/admin.challenge.flags.webp)\n![admin.game.info.webp](assets/images/admin.game.info.webp)\n![admin.game.review.webp](assets/images/admin.game.review.webp)\n![admin.game.divisions.webp](assets/images/admin.game.divisions.webp)\n![admin.teams.webp](assets/images/admin.teams.webp)\n![admin.instances.webp](assets/images/admin.instances.webp)\n![monitor.game.events.webp](assets/images/monitor.game.events.webp)\n![monitor.game.submissions.webp](assets/images/monitor.game.submissions.webp)\n\n## 貢献者 👋\n\n\u003ca href=\"https://github.com/GZTimeWalker/GZCTF/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=GZTimeWalker/GZCTF\" /\u003e\n\u003c/a\u003e\n\n## 大会事例 🏆\n\n以下は GZCTF を使った CTF 大会事例の一部です。主催者たちの信頼、サポートと大切なフィードバックが GZCTF の継続的改善の原動力となっております。\n\n### 国際イベント\n\n- [**San Diego CTF 2024: Organized by University of California, San Diego**](https://ctftime.org/event/2325)\n- [**R3CTF 2024: Organized by r3kapig**](https://ctftime.org/event/2273)\n- [**TCP1P CTF 2024: Exploring Nusantara's Digital Realm**](https://ctftime.org/event/2256/)\n\n### その他のイベント\n\n- **清華大学ネットワークセキュリティ技術チャレンジ THUCTF 2022**\n- **浙江大学 ZJUCTF 2022/2023/2024**\n- **東南大学虎踞龍蟠杯ネットワークセキュリティチャレンジ SUSCTF 2022/2023/2024**\n- **甘粛政法大学 DIDCTF 2022/2023/2024**\n- **山東科技大学第一回ネットワークセキュリティ実践大会 woodpecker**\n- **西北工業大学 NPUCTF 2022**\n- **SkyNICO ネットワーク空間セキュリティ三校連合大会 (厦門理工学院、福建師範大学、齐鲁工業大学)**\n- **湖南警察学院ネットワークセキュリティ攻防大会**\n- **中山大学情報セキュリティ新人戦 W4terCTF [2023](https://github.com/W4terDr0p/W4terCTF-2023)/2024**\n- **浙江師範大学 ZJNUCTF [2023](https://github.com/A1natas/zjnuctf-school-contest-2023)/[2024](https://github.com/A1natas/zjnuctf-school-contest-2024)**\n- **同済大学第五回ネットワークセキュリティ大会 TongjiCTF 2023**\n- **同済大学ネットワークセキュリティ大会（新入生コンクール） CatCTF 2023/2024**\n- **重慶工商大学第一回ネットワークセキュリティ大会 CTBUCTF 2023**\n- **西北工業大学第一回セキュリティ実験技能大会 NPUCTF 2023**\n- **浙江師範大学行知学院第一回ネットワークセキュリティ新人戦 XZCTF 2023**\n- **ハルビン工程大学貢橙杯新生大会 ORGCTF 2023**\n- **\"山河\"ネットワークセキュリティ技能チャレンジ SHCTF 2023**\n- **天津科技大学 2023 年大学生クリエイタートレーニングキャンプネットワークセキュリティグループ選抜**\n- **湖南衡陽師範学院玄天ネット安実験室新人戦 HYNUCTF 2023**\n- **南陽師範学院新人戦 NYNUCTF S4**\n- **商丘師範学院初回ネットワークセキュリティ新人戦**\n- **蘇州市職業大学 2023 年冬季新人戦 [SVUCTF-WINTER-2023](https://github.com/SVUCTF/SVUCTF-WINTER-2023)**\n- **北京航空航天大学 BUAACTF 2024**\n- **曲阜師範大学第 1 回“曲 star”サイバーセキュリティスキルコンテスト**\n- **成都理工大学第 4 回、第 5 回情報セキュリティ・コンペティション DinoCTF**\n- **重慶郵電大学 RedrockCTF 2024**\n- **重慶安全技術職業学院 2024 年「先锋杯」ネットワークセキュリティ技術競技 WAXFCTF**\n\n_順番は順位との関係はありません。追加ための PR は大歓迎。_\n\n## 特別感謝 ❤️‍🔥\n\nTHUCTF 2022 の主催者である NanoApe によるスポンサーシップと、Alibaba Cloud パブリックネットワークでのストレステストのおかげで、数千の同時実行と 3 分間の 134 万のリクエストのプレッシャーの下で GZCTF 単一マシンインスタンス (16c90g) のサービスの安定性を検証することができました。ここで心から感謝申し上げます。\n\n## ライセンス 📄\n\nGZCTF はデュアルライセンスです：\n\n1.  **コアソースコード**：**GNU Affero General Public License v3.0 (AGPLv3)** の下でライセンスされています。これはプロジェクトの主要部分をカバーし、使用、変更、配布に関する広範な自由を許諾します。詳細は `LICENSE.txt` を参照してください。\n\n2.  **制限付きコンポーネント**：カスタムの **GZCTF 制限付きライセンス** (`LicenseRef-GZCTF-Restricted`) の下でライセンスされています。\n    - **使用と配布の許可**：すべての著作権表示とライセンステキストが保持されている限り、コンポーネントを現状のまま（未変更で）自由に使用および再配布できます。\n    - **変更および削除の禁止**：作者からの明示的な書面による許可なく、これらのコンポーネントを**変更、削除、派生物の作成、リバースエンジニアリング**することはできません。\n    - **ファイルリスト**：制限付きコンポーネントの完全なリストは `PROPRIETARY_COMPONENTS.md` ファイルで定義されています。\n    - **ライセンス全文**：詳細な条件については `license/LicenseRef-GZCTF-Restricted.txt` を参照してください。\n\nGZCTF の **変更されたバージョン** を公開サービスとして展開する場合、以下の要件を満たす必要があります：\n\n- ウェブサイトのフッターなど、目立つ場所に元の著作権および帰属情報を保持する。\n- 使用している GZCTF のバージョンとそのライセンスを明記する。\n- 元のリポジトリおよび元のライセンステキストへのリンクを提供する。\n\n### 商標とブランド\n\n- \"GZCTF\" / \"GZ::CTF\" の名称、ロゴ、および関連ブランド資産は作者の商標です。\n- 使用は `TRADEMARKS.md` によって規定されています。記述的な参照（例：「Forked from GZCTF」）は許可されていますが、公式の支持を暗示してはなりません。\n\n統合された著作権および商標に関する声明については、`NOTICE` ファイルも参照してください。\n\n## Stars ✨\n\n[![Stargazers over time](https://starchart.cc/GZTimeWalker/GZCTF.svg?variant=adaptive)](https://starchart.cc/GZTimeWalker/GZCTF)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgztimewalker%2Fgzctf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgztimewalker%2Fgzctf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgztimewalker%2Fgzctf/lists"}