当前位置:   article > 正文

GZCTF在ubuntu系统中的安装之单docker

gzctf

首先我们放出GZCTF的官方安装教程我打开他比较玄学有的时候不科学上网上去很诡异,GZCTF用的是postgresql数据库不能用mysql,postgresql的安装和教程网上很多就不赘述了快速上手 - GZ::CTF Docs (gzti.me)https://docs.ctf.gzti.me/quick-start

一.安装docker和docker-compose

1.首先设置docker的apt储存库

  1. # Add Docker's official GPG key:
  2. sudo apt-get update
  3. sudo apt-get install ca-certificates curl gnupg
  4. sudo install -m 0755 -d /etc/apt/keyrings
  5. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  6. sudo chmod a+r /etc/apt/keyrings/docker.gpg
  7. # Add the repository to Apt sources:
  8. echo \
  9. "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  10. "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  11. sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  12. 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


 二.安装docker-compose
1.通过链接github下载(如果不搞加速可能要做好十多kb慢慢下的心理准备)

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

确定安装成功

  1. docker-compose --version #查看返回值
  2. docker-compose version 1.16.1, build 1719ceb #如

2.pip下载

sudo pip install docker-compose

3.离线下载(不想面对十几kb的惊人速度就用这个方法)

进入链接:下载地址 下载该文件步骤如下

(1)

d716b605128a4a25bc05c8e3b866a064.png

(2)进入后找下滑找该文件并下载

72b5e0c3c4fe4e14a256d5909191cbad.png

(3)如果是服务器就远程传输本文件到服务器上执行下面命令

  1. mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose #离线安装
  2. chmod +x /usr/local/bin/docker-compose #赋权
  3. docker-compose --version #确定安装成功

注意这个version的返回值是有用的

三.GZCTF的安装

1.将以下内容保存为 appsettings.json 文件,并替换为你的初始化参数,具体配置说明请参考 appsetting.json配置详解

  1. {
  2. "AllowedHosts": "*",
  3. "ConnectionStrings": {
  4. "Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=<String1>"
  5. //<String1>换成数据库密码,随机密码且长度足够
  6. },
  7. "Logging": {
  8. "LogLevel": {
  9. "Default": "Information",
  10. "Microsoft": "Warning",
  11. "Microsoft.Hosting.Lifetime": "Information"
  12. }
  13. },
  14. //邮箱配置
  15. "EmailConfig": {
  16. "SendMailAddress": "Admin@xxx.com", // 填入邮箱
  17. "UserName": "ctf_noreply", // 发件人名称
  18. "Password": "UWPTINWMFPQVMPAH", // 邮箱密码,部分服务商需要填入授权码
  19. "Smtp": {
  20. "Host": "smtp.163.com", // 此处为163邮箱服务器,具体自定
  21. "Port": 465
  22. }
  23. },
  24. "XorKey": "<String2>", // 自定XorKey
  25. "ContainerProvider": {
  26. "Type": "Docker",
  27. "PublicEntry": "XXX.XXX.XXX.XXX", // 域名或IP配置,用于容器生成,域名不带http/https
  28. "DockerConfig": {
  29. "SwarmMode": false,
  30. "Uri": "" // 本地配置Docker因此此处置空
  31. }
  32. },
  33. "RequestLogging": false,
  34. "DisableRateLimit": false,
  35. "RegistryConfig": {
  36. "UserName": "",
  37. "Password": "",
  38. "ServerAddress": ""
  39. },
  40. //谷歌验证码配置
  41. "GoogleRecaptcha": {
  42. "VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify",
  43. "Sitekey": "",
  44. "Secretkey": "",
  45. "RecaptchaThreshold": "0.5"
  46. }
  47. }
  48. ~

 

理论上来说应该要把String1换成自己的postgresql数据库的账户密码但是我不知道为啥我的用String1就可以运行我也懒得改了,但是我觉得为了安全起见还是改的好,或许那天懂了我也会改

 

补一下我朋友试出来,给我说的是postgresql自己的配置文件里面有个选择密码加密方式,要改成md5加密(好像是md5)反正要改,改完之后就可以和appsettings.jons文件匹配上了,就是这样


2.将以下内容保存为 docker-compose.yml 文件,并替换为你的初始化参数

  1. version: '2.22' #这里就是刚刚version返回值有用的地方
  2. services:
  3. gzctf:
  4. image: gztime/gzctf:latest
  5. restart: always
  6. environment:
  7. - "GZCTF_ADMIN_PASSWORD=<String3>" # <String3>换成管理员账户密码,账号为Admin
  8. ports:
  9. - "80:80" # 对外端口号,前为外部端口。
  10. networks:
  11. default:
  12. volumes:
  13. - "./data/files:/app/uploads"
  14. - "./appsettings.json:/app/appsettings.json:ro"
  15. - "./logs:/app/log"
  16. - "./data/keys:/root/.aspnet/DataProtection-Keys"
  17. # - "./k8sconfig.yaml:/app/k8sconfig.yaml:ro"
  18. - "/var/run/docker.sock:/var/run/docker.sock"
  19. depends_on:
  20. - db
  21. db:
  22. image: postgres:alpine
  23. restart: always
  24. environment:
  25. - "POSTGRES_PASSWORD=<String1>" # 数据库密码,务必要和appsettings.json中的配置一致
  26. networks:
  27. default:
  28. volumes:
  29. - "./data/db:/var/lib/postgresql/data"
  30. networks:
  31. default:
  32. driver: bridge
  33. ipam:
  34. config:
  35. - subnet: 192.168.12.0/24

到此GZCTF的内容就差不多弄完了,然后就可以通过你的http:\\ip:80进入了,大概这个画面

c9b6665ad2e34dd5a54a01c26e003189.png

四.赛题的安装

一前言

        由于我们安装赛题时要使用dockerfile进行image的构建,但是docker bulid 使用时需要docker bulidkit的环境但是,docker在2.23版本就将bulidkit遗弃了2.24版本就删除了,docker官网上面也写了bulidkit怎么用但是他没有告诉你2.24版本就删除了,还要找他另一个版本更新删除内容的公告才有,就很emmmmm,所以你走bulidkit方向也不是不行,但是我没走通....就用了docker desktop        

二.安装docker desktop

1.对于非 Gnome 桌面环境,必须安装:gnome-terminal

apt install gnome-terminal

2.下载软件包下载地址

3.使用apt安装软件包(服务器要远程传本文件上去)

  1. apt-get update
  2. apt-get install ./docker-desktop-<version>-<arch>.deb
  3. #要是不想打那么多可以只打前面的apt-get install ./docker-desktop然后tab一下

4.启动服务

  1. systemctl --user start docker-desktop
  2. systemctl --user enable docker-desktop

三.下载赛题

1下载赛题

GZCTF自己整理的赛题

2.创建镜像

cd XXX/one-number-sql/build #我用one-number-sql举例

找到dockerfile文件704c25047c9d4468b85b650cb9f8b126.png

使用命令

docker bulid -t <自取镜像名字> .(这个点是指的当前路径下他是有用的!!!!)

等他跑完不出报错使用docker images 查看是否创建成功(我确实取名叫sql已经有了)

  1. docker images
  2. #REPOSITORY TAG IMAGE ID CREATED SIZE
  3. #sql latest 6d0810f0f24b 4 hours ago 68.1MB
  4. #nc-test latest 534eb8da972f 5 hours ago 8.08MB
  5. #<none> <none> ec5e49bd5081 6 days ago 4.21MB
  6. #gztime/gzctf latest d3a5c260e275 8 days ago 349MB
  7. #postgres alpine a08278fcaefe 3 weeks ago 239MB
  8. #ghcr.io/w4terdr0p/w4terctf-2023/php alpine-7.4 bc146bfe514b 2 months ago 81.2MB
  9. #ghcr.io/w4terdr0p/w4terctf-2023/php latest 57be3fb1fff1 2 months ago 81.2MB
  10. #ghcr.io/w4terdr0p/w4terctf-2023/xinetd alpine 4479d282e9e0 2 months ago 8.08MB
  11. #hello-world latest 9c7a54a9a43c 5 months ago 13.3kB

3.测试镜像创建成功以及GZCTF可以运行

(1)创建比赛

e2d78c6e48ff419d9d331e3628e91c13.png

(2)创建赛题

05db7f0f8658485a8862d9d3954f08e0.png

(3)测试镜像

e6e03c1101934f778c4f913f4375fdae.png

(4)大功告成

78529ed7603a474f914c05d1ea09a53d.png

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/356641
推荐阅读
相关标签
  

闽ICP备14008679号