赞
踩
首先我们放出GZCTF的官方安装教程我打开他比较玄学有的时候不科学上网上去很诡异,GZCTF用的是postgresql数据库不能用mysql,postgresql的安装和教程网上很多就不赘述了快速上手 - GZ::CTF Docs (gzti.me)https://docs.ctf.gzti.me/quick-start
1.首先设置docker的apt储存库
- # Add Docker's official GPG key:
- sudo apt-get update
- sudo apt-get install ca-certificates curl gnupg
- sudo install -m 0755 -d /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- sudo chmod a+r /etc/apt/keyrings/docker.gpg
- # Add the repository to Apt sources:
- echo \
- "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
- "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
- sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt-get update
2.安装docker以及配件
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3确定docker安装成功,我觉得docker --version如果能出来的话应该也行嗯,~
docker run hello-world
sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加权限
sudo chmod +x /usr/local/bin/docker-compose
确定安装成功
- docker-compose --version #查看返回值
-
- docker-compose version 1.16.1, build 1719ceb #如
2.pip下载
sudo pip install docker-compose
3.离线下载(不想面对十几kb的惊人速度就用这个方法)
进入链接:下载地址 下载该文件步骤如下
(1)
(2)进入后找下滑找该文件并下载
(3)如果是服务器就远程传输本文件到服务器上执行下面命令
- mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose #离线安装
- chmod +x /usr/local/bin/docker-compose #赋权
- docker-compose --version #确定安装成功
注意这个version的返回值是有用的
1.将以下内容保存为 appsettings.json
文件,并替换为你的初始化参数,具体配置说明请参考 appsetting.json配置详解
- {
- "AllowedHosts": "*",
- "ConnectionStrings": {
- "Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=<String1>"
- //<String1>换成数据库密码,随机密码且长度足够
- },
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "Microsoft": "Warning",
- "Microsoft.Hosting.Lifetime": "Information"
- }
- },
- //邮箱配置
- "EmailConfig": {
- "SendMailAddress": "Admin@xxx.com", // 填入邮箱
- "UserName": "ctf_noreply", // 发件人名称
- "Password": "UWPTINWMFPQVMPAH", // 邮箱密码,部分服务商需要填入授权码
- "Smtp": {
- "Host": "smtp.163.com", // 此处为163邮箱服务器,具体自定
- "Port": 465
- }
- },
- "XorKey": "<String2>", // 自定XorKey
- "ContainerProvider": {
- "Type": "Docker",
- "PublicEntry": "XXX.XXX.XXX.XXX", // 域名或IP配置,用于容器生成,域名不带http/https
- "DockerConfig": {
- "SwarmMode": false,
- "Uri": "" // 本地配置Docker因此此处置空
- }
- },
- "RequestLogging": false,
- "DisableRateLimit": false,
- "RegistryConfig": {
- "UserName": "",
- "Password": "",
- "ServerAddress": ""
- },
-
- //谷歌验证码配置
- "GoogleRecaptcha": {
- "VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify",
- "Sitekey": "",
- "Secretkey": "",
- "RecaptchaThreshold": "0.5"
- }
- }
- ~
理论上来说应该要把String1换成自己的postgresql数据库的账户密码但是我不知道为啥我的用String1就可以运行我也懒得改了,但是我觉得为了安全起见还是改的好,或许那天懂了我也会改
补一下我朋友试出来,给我说的是postgresql自己的配置文件里面有个选择密码加密方式,要改成md5加密(好像是md5)反正要改,改完之后就可以和appsettings.jons文件匹配上了,就是这样
2.将以下内容保存为 docker-compose.yml
文件,并替换为你的初始化参数
- version: '2.22' #这里就是刚刚version返回值有用的地方
- services:
- gzctf:
- image: gztime/gzctf:latest
- restart: always
- environment:
- - "GZCTF_ADMIN_PASSWORD=<String3>" # <String3>换成管理员账户密码,账号为Admin
- ports:
- - "80:80" # 对外端口号,前为外部端口。
- networks:
- default:
- volumes:
- - "./data/files:/app/uploads"
- - "./appsettings.json:/app/appsettings.json:ro"
- - "./logs:/app/log"
- - "./data/keys:/root/.aspnet/DataProtection-Keys"
- # - "./k8sconfig.yaml:/app/k8sconfig.yaml:ro"
- - "/var/run/docker.sock:/var/run/docker.sock"
- depends_on:
- - db
-
- db:
- image: postgres:alpine
- restart: always
- environment:
- - "POSTGRES_PASSWORD=<String1>" # 数据库密码,务必要和appsettings.json中的配置一致
- networks:
- default:
- volumes:
- - "./data/db:/var/lib/postgresql/data"
-
- networks:
- default:
- driver: bridge
- ipam:
- config:
- - subnet: 192.168.12.0/24
到此GZCTF的内容就差不多弄完了,然后就可以通过你的http:\\ip:80进入了,大概这个画面
1.对于非 Gnome 桌面环境,必须安装:gnome-terminal
apt install gnome-terminal
2.下载软件包下载地址
3.使用apt安装软件包(服务器要远程传本文件上去)
- apt-get update
- apt-get install ./docker-desktop-<version>-<arch>.deb
- #要是不想打那么多可以只打前面的apt-get install ./docker-desktop然后tab一下
4.启动服务
- systemctl --user start docker-desktop
- systemctl --user enable docker-desktop
1下载赛题
2.创建镜像
cd XXX/one-number-sql/build #我用one-number-sql举例
找到dockerfile文件
使用命令
docker bulid -t <自取镜像名字> .(这个点是指的当前路径下他是有用的!!!!)
等他跑完不出报错使用docker images 查看是否创建成功(我确实取名叫sql已经有了)
- docker images
- #REPOSITORY TAG IMAGE ID CREATED SIZE
- #sql latest 6d0810f0f24b 4 hours ago 68.1MB
- #nc-test latest 534eb8da972f 5 hours ago 8.08MB
- #<none> <none> ec5e49bd5081 6 days ago 4.21MB
- #gztime/gzctf latest d3a5c260e275 8 days ago 349MB
- #postgres alpine a08278fcaefe 3 weeks ago 239MB
- #ghcr.io/w4terdr0p/w4terctf-2023/php alpine-7.4 bc146bfe514b 2 months ago 81.2MB
- #ghcr.io/w4terdr0p/w4terctf-2023/php latest 57be3fb1fff1 2 months ago 81.2MB
- #ghcr.io/w4terdr0p/w4terctf-2023/xinetd alpine 4479d282e9e0 2 months ago 8.08MB
- #hello-world latest 9c7a54a9a43c 5 months ago 13.3kB
3.测试镜像创建成功以及GZCTF可以运行
(1)创建比赛
(2)创建赛题
(3)测试镜像
(4)大功告成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。