GZCTF平臺搭建及題目上傳

前言

我用手里的Ubuntu虛擬機搭建的,大家根據自己的實際情況來吧


安裝及部署

首先,你的虛擬機需要有DockerDocker-Compose,前者可以看我之前的文章,另外一個可以輸入下面的命令安裝,注意先獲取管理員權限,開個代理防止連接不上

apt install docker.io docker-compose

使用下列命令檢查是否安裝成功

docker-compose -v

然后我們創建個GZCTF文件夾用來存放文件

使用touch命令分別創建appsettings.jsondocker-compose.yml文件

內容大家可以把我下面這段復制粘貼(把PublicEntry那段的ip改成自己的虛擬機ip)

appsettings.json

{"AllowedHosts": "*","ConnectionStrings": {"Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=Admin123."},"EmailConfig": {"SendMailAddress": "a@a.com","UserName": "","Password": "","Smtp": {"Host": "localhost","Port": 587}},"XorKey": "Admin123.","ContainerProvider": {"Type": "Docker", // or "Kubernetes""PortMappingType": "Default", // or "PlatformProxy""EnableTrafficCapture": false,"PublicEntry": "192.168.221.128", // or "xxx.xxx.xxx.xxx"// optional"DockerConfig": {"SwarmMode": false,"Uri": "unix:///var/run/docker.sock"}},"RequestLogging": false,"DisableRateLimit": true,"RegistryConfig": {"UserName": "","Password": "","ServerAddress": ""},"CaptchaConfig": {"Provider": "None", // or "CloudflareTurnstile" or "GoogleRecaptcha""SiteKey": "<Your SITE_KEY>","SecretKey": "admin",// optional"GoogleRecaptcha": {"VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify","RecaptchaThreshold": "0.5"}},"ForwardedOptions": {"ForwardedHeaders": 5,"ForwardLimit": 1,"TrustedNetworks": ["192.168.12.0/8"]}
}

?docker-compose.yml

version: "3.0"
services:gzctf:image: registry.cn-shanghai.aliyuncs.com/gztime/gzctf:developrestart: alwaysenvironment:- "GZCTF_ADMIN_PASSWORD=Admin123."# choose your backend language `en_US` / `zh_CN` / `ja_JP`- "LC_ALL=zh_CN.UTF-8"ports:- "80:8080"volumes:- "./data/files:/app/files"- "./appsettings.json:/app/appsettings.json:ro"# - "./kube-config.yaml:/app/kube-config.yaml:ro" # this is required for k8s deployment- "/var/run/docker.sock:/var/run/docker.sock" # this is required for docker deploymentdepends_on:- dbdb:image: postgres:alpinerestart: alwaysenvironment:- "POSTGRES_PASSWORD=Admin123."volumes:- "./data/db:/var/lib/postgresql/data"

接下來我們在這個文件夾里面打開控制臺,輸入下面的命令運行,他會自動下載所需的資源然后運行

docker-compose up -d

等待加載完畢

我們直接訪問虛擬機ip即可

接下來我們點擊左下角登錄,用戶名是Admin,密碼是Admin123.(之前那兩個文件里面寫的密碼)

登陸成功后,我們可以點擊左側小扳手,然后創建比賽了

之后大家根據自己的需要進行設置吧


鏡像的構建

我們通過docker進行構建自己的題目,需要注意的是,比如我用python的flask框架編寫的文件,如果我們需要用到動態的Flag,可以引入os模塊,之后運行這個鏡像的時候,GZCTF平臺會自動創建GZCTF_Flag這個環境變量,我們可以用下面的命令獲取動態的flag

flag = os.environ.get("GZCTF_FLAG")

之后,大家根據自己的題目來就好,接下來我們講關于構建和上傳

如果需要上傳到官方的DockerHub上,我們先去創建一個賬號

官方鏈接:DockerHub

然后,我們創建一個庫(一個鏡像創建一個庫吧)

比如我創建了一個賬號,名字叫1234,創建了一個倉庫叫4567

首先要登陸到自己的賬戶

docker login

大家在構建鏡像的時候,用下面的命令構建(名字/倉庫)

docker build -t 1234/5678 -f Dockerfile .

之后,直接上傳到倉庫

docker push 1234/5678

然后大家就能在自己的倉庫里面看見了


鏡像的獲取

創建個動態容器,然后編輯flag

大家看說明就明白了flag怎么設置,保存然后回來,我們填寫容器的鏈接

比如我們上傳的是DockerHub上的,需要填寫(名字/倉庫),如果打標簽了還需要加個(:標簽)

注意端口號,按照你的鏡像設置來

設置之后,我們就可以正常去使用了


總結

如果安裝有問題的話,就重裝一下吧,這里給大家寫上幾條常用的代碼

docker rmi $(docker images -q) #刪除所有鏡像
docker stop $(docker ps -q) #停止所有鏡像
docker rm $(docker ps -a -q) #刪除所有鏡像(不管是否停止)docker-compose up -d #運行
docker-compose down #停止docker logs gzctf_gzctf_1 #查看日志

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74405.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74405.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74405.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pycharm社區版創建Flask項目詳解

一、創建工程項目 二、配置工程目錄 新建的空項目下創建目錄。 1、新建app.py文件 2、app.py代碼如下&#xff1a; from flask import Flask, render_templateapp Flask(__name__)app.route("/") def root():"""主頁:return: Index.html"&qu…

CentOS 7 64位安裝Docker

以下是在已有的 CentOS 7 64 位虛擬機上安裝 Docker 并配置華為鏡像源的詳細步驟&#xff1a; 1. 備份原有 Yum 源&#xff08;可選&#xff0c;建議操作&#xff09; # 備份原有倉庫文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu…

運動仿真——phased.Platform

在雷達仿真過程中&#xff0c;運動仿真的必要性&#xff0c;以及運動仿真可以實現哪些功能&#xff0c;在matlab對應的user guide中已經講的很清楚了&#xff0c;這里不再贅述。 本文主要介紹phased.Platform的一些“坑”&#xff0c;和典型的用法。 第一坑&#xff1a;系統對…

緩存刪除三級補償方案:延遲隊列+消息隊列+定時任務兜底

問題背景: 在 Cache-Aside 模式中&#xff0c;更新數據庫后刪除緩存失敗會導致數據不一致。本文提供工業級三級補償方案&#xff0c;實現最終一致性保障。 整體架構: 更新操作觸發 → 一級延遲隊列 → 二級消息隊列 → 三級定時任務方案實現: 一、第一級補償&#xff1a;延遲隊…

從零開始實現 C++ TinyWebServer 數據庫連接池 SqlConnectPool詳解

文章目錄 數據庫連接池是什么&#xff1f;Web Server 中為什么需要數據庫連接池&#xff1f;SqlConnectPool 成員變量實現 Init() 函數實現 ClosePool() 函數SqlConnectRAII 類SqlConnectPool 代碼SqlConnectPool 測試 從零開始實現 C TinyWebServer 項目總覽 項目源碼 數據庫連…

C++題目

1、內存管理 1.內存模型 棧:在執行函數時&#xff0c;函數內局部變量的存儲單元都可以在棧上創建&#xff0c;函數執行結束時這些存儲單元自動被釋放。 堆&#xff1a;就是那些由new分配的內存塊&#xff0c;其釋放由程序員控制&#xff08;一個new對應一個delete&#xff09…

天地圖InfoWindow插入React自定義組件

截至2025年03月21日天地圖的Marker不支持添加Label; 同時Label和Icon是不支持自定義HTMLElement只支持String&#xff1b;目前只有InfoWindow支持自定義HTMLElement; 效果圖 React核心api import ReactDOM from react-dom/client const content document.createElement(div);…

Java并發編程面試匯總

Java并發編程 一、 基礎概念1. 進程與線程的區別是什么&#xff1f;2. 創建線程的幾種方式&#xff1f;3. 線程的生命周期&#xff08;狀態&#xff09;有哪些&#xff1f;4. 什么是守護線程&#xff08;Daemon Thread&#xff09;&#xff1f;5. 線程優先級&#xff08;Priori…

【STM32】第一個工程的創建

目錄 1、獲取 KEIL5 安裝包2、開始安裝 KEIL52.1、 激活2.2、安裝DFP庫 3、工程創建4、搭建框架5、開始編寫代碼 1、獲取 KEIL5 安裝包 要想獲得 KEIL5 的安裝包&#xff0c;在百度里面搜索“KEIL5 下載”即可找到很多網友提供的下載文件&#xff0c;或者到 KEIL 的官網下載&a…

動態規劃~01背包問題

01背包問題 經典的0 - 1背包問題的解決方案。 二維數組的版本 代碼功能概述 0 - 1背包問題指的是有 n 個物品和一個容量為 m 的背包&#xff0c;每個物品有對應的體積 v[i] 和價值 w[i]&#xff0c;需要從這些物品里挑選若干個放入背包&#xff0c;讓背包內物品的總價值達到最…

深入理解Java享元模式及其線程安全實踐

引言 在軟件系統中&#xff0c;當需要處理海量細粒度對象時&#xff0c;直接創建大量實例可能會導致內存消耗激增和性能下降。享元模式&#xff08;Flyweight Pattern&#xff09;通過共享對象內部狀態&#xff0c;成為解決這類問題的經典方案。然而在多線程環境下&#xff0c…

1、mysql基礎篇--概述

關系型數據庫&#xff08;RDBMS&#xff09; 概念特點&#xff1a;數據模型&#xff1a; 概念 建立在關系模型基礎上&#xff0c;有多張表相互連接的二維表組成的數據庫 特點&#xff1a; 1、使用表存儲&#xff0c;格式統一&#xff0c;便于維護 2、使用sql語言操作&#…

如何提升庫存系統的高并發和穩定性:算法與設計模式

庫存系統是企業運營的核心模塊&#xff0c;尤其是在電商、零售和供應鏈管理中&#xff0c;系統的高并發和穩定性直接影響訂單處理的準確性和效率。面對海量訂單、復雜的庫存管理需求&#xff0c;如何在高并發環境下確保庫存數據的準確性和系統的穩定性&#xff1f;本文將從架構…

【多線程】synchronized底層實現的方式

前言 在java 開發中對于鎖的應用非常的常見&#xff0c;如果對于什么時候該用什么鎖&#xff0c;以及鎖實現的原理有所不知道的&#xff0c;或者面試過程中面試官問你不知道怎么回答的&#xff0c;歡迎來看下面的文章 1、synchronized和ReentrantLock的區別 2、synchronized的…

Pytorch中Tensorboard的學習

1、Tensorboard介紹 TensorBoard 是 TensorFlow 開發的一個可視化工具&#xff0c;用于幫助用戶理解和調試機器學習模型的訓練過程。盡管它最初是為 TensorFlow 設計的&#xff0c;但通過 PyTorch 的 torch.utils.tensorboard 模塊&#xff0c;PyTorch 用戶也可以方便地使用 Te…

ETL 自動化:提升數據處理效率與準確性的核心驅動力

在數字化轉型的浪潮中&#xff0c;數據已成為企業戰略資產&#xff0c;高效處理數據的能力直接關系到企業的競爭力。ETL&#xff08;Extract, Transform, Load&#xff09;自動化作為數據處理領域的關鍵技術&#xff0c;正逐漸成為企業在數據時代脫穎而出、實現高效運營與精準決…

std::endl為什么C++ 智能提示是函數?

在使用vscode 的C智能提示后&#xff0c;輸入endl 后&#xff0c;提示的卻是std::endl(basic_ostream<CharT, Traits> &os), 感覺比較奇怪&#xff0c;各種代碼里都是直接用的std::endl 啊&#xff0c; 這里怎么變成函數了呢&#xff1f; 在 C 中&#xff0c;std::en…

簡潔、實用、無插件和更安全為特點的WordPress主題

簡站WordPress主題是一款以簡潔、實用、無插件和更安全為特點的WordPress主題&#xff0c;自2013年創立以來&#xff0c;憑借其設計理念和功能優勢&#xff0c;深受用戶喜愛。以下是對簡站WordPress主題的詳細介紹&#xff1a; 1. 設計理念 簡站WordPress主題的核心理念是“崇…

數據結構篇:空間復雜度和時間復雜度

目錄 1.前言&#xff1a; 1.1 學習感悟 1.2 數據結構的學習之路(初階) 2.什么是數據結構和算法 2.1 數據結構和算法的關系 2.2 算法的重要性 2.3 如何衡量算法的好壞 3.時間復雜度 3.1 時間復雜度的概念 3.2 大O的漸進表示法 O() 4.空間復雜度 5. 常見的時間復雜度和…

node-ddk,electron,截屏封裝(js-web-screen-shot)

node-ddk 截屏封裝(js-web-screen-shot) https://blog.csdn.net/eli960/article/details/146207062 也可以下載demo直接演示 http://linuxmail.cn/go#node-ddk 感謝/第三方 本截屏工具, 使用的是: js-web-screen-shot https://www.npmjs.com/package/vue-web-screen-shot…