GZCTF比赛平台搭建,从0-1,小白也能看懂

前言

GZCTF,一个开源的网络安全竞赛平台,它巧妙地融合了React.js前端技术和Django后端架构,为用户提供了一个通过实战演练提升安全技能的宝贵舞台。无论你是初学者、教育机构还是企业培训部门,GZCTF都能满足你的需求,其丰富的功能如权限控制、加密通信以及自定义赛事等,将带给你前所未有的使用体验。

image-20240829234700119

官方文档:https://docs.ctf.gzti.me/zh/quick-start

操作系统:ubuntu-22.04.4(已重装)

1、换源

从0开始,换源

vim /etc/apt/sources.list

修改为如下内容

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

更新apt源:

apt update

2、安装docker

继去年Docker Hub被封锁后,各大NAS的注册表均出现问题,例如群晖的Docker套件注册表无法连接(更新至DSM7.2版本后恢复)。
而在今年2024年6月初(约2024.06.06),NAS中最重要的工具Docker又面临无法使用的问题。
常用镜像站:阿里云、科大、南大、上交等,全部挂掉。

2.1更新系统软件包:

sudo apt update

2.2安装已经配置的镜像源最新版:

apt install docker-ce docker-ce-cli containerd.io

2.3换docker源

vim /etc/docker/daemon.json

修改为如下内容

{
    "registry-mirrors": [
        "https://ustc-edu-cn.mirror.aliyuncs.com/",
        "https://ccr.ccs.tencentyun.com/",
        "https://docker.m.daocloud.io/",
  "https://dockerhub.azk8s.cn",
  "https://mirror.baidubce.com",
  "https://docker.nju.edu.cn",
  "https://mirror.iscas.ac.cn",
  "https://dockerhub.icu",
  "https://docker.anyhub.us.kg",
  "https://hub.gog.email",
  "https://dockerpull.com",
  "https://atomhub.openatom.cn"
    ]
}

添加好了之后,重启docker服务

sudo systemctl restart docker
或者
sudo systemctl restart docker.service   //如果一个命令不行就换上面一个

查看docker信息

docker info

image-20240829214828416

配置docker开机自启

sudo systemctl restart docker
或者
systemctl enable docker.service   //如果一个命令不行就换上面一个

3. GZCTF的安装

3.1 在当前文件夹下(就是你GZCTF靶场的配置目录),创建 appsettings.json

vim appsettings.json

{
    "AllowedHosts": "*",
    "ConnectionStrings": {
        "Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=GzctfAuto233",    // 此处Password内容可以自定义(安全起见,至少包含数字及字母大小写)
        "RedisCache": "cache:6379,abortConnect=false"
    },
    "EmailConfig": {                           // 邮件配置,用于找回密码之类的,这里就用163举例
        "SendMailAddress": "demo@163.com",    // 邮件发送者
        "UserName": "demo@163.com",     // SMTP用户名,就是你开启SMTP的邮箱
        "Password": "SMTP_PASSWORD",    // 你得STMP服务器密码,唯一,
        "Smtp": {
            "Host": "smtp.163.com",   // 163邮箱的stmp服务器地址
            "Port": 465         // stmp端口
        }
    },
    "XorKey": "GzctfAuto233",          // 此处XorKey可以自定义
    "ContainerProvider": {
        "Type": "Docker",
        "PortMappingType": "Default",
        "EnableTrafficCapture": false,
        "PublicEntry": "XXX.XXX.XXX.XXX",      // 域名或IP配置,用于容器生成,域名不带http/https
        "DockerConfig": {
            "SwarmMode": false,
            "Uri": "unix:///var/run/docker.sock"
        }
    },
    "RequestLogging": false,
    "DisableRateLimit": true,
    "RegistryConfig": {
        "UserName": "DOCKER_USERNAME",
        "Password": "DOCKER_PASSWORD",
        "ServerAddress": "DOCKER_ADDRESS"
    },
    "CaptchaConfig": {
        "Provider": "None",
        "SiteKey": "",
        "SecretKey": "",
        "GoogleRecaptcha": {
            "VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify",
            "RecaptchaThreshold": "0.5"
        }
    },
    "ForwardedOptions": {
        "ForwardedHeaders": 5,
        "ForwardLimit": 1,
        "ForwardedForHeaderName": "X-Forwarded-For",
        "TrustedNetworks": [
            "0.0.0.0/0"
        ]
    }
}

3.2 在当前文件夹下,创建 docker-compose.yml

vim docker-compose.yml

3.3 将以下内容保存为 docker-compose.yml 文件,并替换为你的初始化参数(注释需删除,保存后可能会报错):


version: "3.7"
services:
  gzctf:
    image: registry.cn-shanghai.aliyuncs.com/gztime/gzctf:latest
    restart: always
    environment:
      - "GZCTF_ADMIN_PASSWORD=<Password>"          # <Password>换成账户管理员密码,管理员账户为admin
      # 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"
      - "/var/run/docker.sock:/var/run/docker.sock"
    depends_on:
      - db
      - cache

  cache:
    image: redis:alpine
    restart: always

  db:
    image: postgres:alpine
    restart: always
    environment:
      - "POSTGRES_PASSWORD=GzctfAuto233"          # 数据库密码,务必要和appsettings.json中的配置一致
    volumes:
      - "./data/db:/var/lib/postgresql/data"

3.4 在当前文件夹执行命令,构建并启动GZCTF:

docker compose up -d

等他安装完成就好,这里我已经安装好了

image-20240829215707704

查看GZCTF启动状态,我配置的是8888端口,这里你们可以直接配置为80

docker ps

image-20240829232329791

然后访问你的服务器地址就好,默认为80端口


这里可以跳过,如果不想要80被占用,可以添加一个反向代理8888到你的IP地址,我用的宝塔面板

image-20240829232524272


国庆假期真实有效,欢迎各位出题人投稿,出题者经审核通过我们将会给予一定的现金奖励【需要Writeup】,题目版权归作者所有,题目也会写上作者的名字,供广大CTFSer们学习使用,并且会永远保存在本平台,本次活动我们将会在国庆假期举行,欢迎各位来参与,我会争取赞助更多的奖品给大家,力争人人都有参与奖,这就是本次赛点。

http://ctf.54cto.com/

image-20240829232633018

新建比赛

管理员登录后找到这个设置

image-20240829220659623

添加标题,选择日期

image-20240829220947479

添加比赛内容

image-20240829224341481

这样就可以直接添加了

image-20240829224438524

查看详细,奖励我暂时只想到这些,这些都是用我自己工资给大伙儿送,到时候看看赞助方怎么说,争取人人都有参与奖

image-20240829224858445

创建队伍

但是现在还不能报名,里面也没有题目创建队伍

image-20240829230358183

这样就可以报名了

image-20240829230433985

新建题目

找到比赛的题目管理

image-20240829225155203

这里可以选择题目类型,这里我们添加一个Misc题目,题目类型为静态附件

image-20240829225442954

点击编辑附件及flag

image-20240829225652892

添加赛题附件和flag固定答案

image-20240829230028699

等你设置的比赛日期到了,报名之后就可以查看赛题了(这里为了演示,我换了网盾的平台作为参考)

image-20240829231719826

泷羽Sec欢迎各位CTFSer和大学生们来出题出题者经审核通过我们将会给予一定的现金奖励【需要Writeup】,题目版权归作者所有,题目也会写上作者的名字,供广大CTFSer们学习使用,并且会永远保存在本平台,本次活动我们将会在国庆假期举行,欢迎各位来参与,我会争取赞助更多的奖品给大家,力争人人都有参与奖,感谢各位小伙伴们的关注。

本公众号致力于提供网络安全自学的文章,特别是针对自学网安迷路的朋友们,如果您自学网络安全的路上遇到了什么困难,欢迎添加作者进群咨询。

往期推荐

111

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇