当前位置:首页 » 《关注互联网》 » 正文

GZCTF靶场从零开始搭建教程(二)>>动态Flag题目部署+本地上传Docker镜像部署

13 人参与  2024年10月18日 14:00  分类 : 《关注互联网》  评论

点击全文阅读


本教程根据以下内容创作

GZCTF官方文档: https://docs.ctf.gzti.me/zhhttps://blog.csdn.net/qq_52820087/article/details/127851116

注: 关于动态Flag题目部署我只粗略概括, 更详细内容看上文第二篇大佬的文章, 并且下文只有web题的动态Flag部署,
没有pwn题的(问就是不会)

一. Web动态Flag题目部署

1. 创建如下结构目录(这里只做一个演示)

.+-- src|   +-- index.php|   +-- flag.sh+-- Dockerfile

接下来分别讲解每个文件的用处

a. index.php

这里简单的直接把Flag输出于页面上

<!DOCTYPE html><html><head>  <title>签到</title></head><body><?phpecho "flag{testflag}";?></body></html>

b. DockerFile

FROM ctftraining/base_image_nginx_mysql_php_56 COPY src /var/www/htmlRUN mv /var/www/html/flag.sh && chmod +x /flag.sh

上文选用了 ctftraining/base_image_nginx_mysql_php_56 来作为基础镜像, 该镜像可以自动运行flag.sh帮助实现动态Flag, 关于该镜像的更多信息可以通过如下仓库

https://github.com/CTFTraining/base_image_nginx_mysql_php_73

然后把 src 目录复制到了基础镜像环境中的***/var/www/html下, 接着把/var/www/html/flag.sh***移动到根目录下, 以便自动运行

这里再提一句, GZCTF中, Dockerfile不需要写 EXPOSE 来暴露端口, 直接在Web页面创建题目时填写即可, 如果写了反而会导致占用端口资源等问题

c. flag.sh

#!/bin/shsed -i "s/flag{testflag}/$GZCTF_FLAG/" /var/www/html/index.phpexport GZCTF_FLAG=""

官方文档中提到, 容器采用 $GZCTF_FLAG 环境变量进行注入(通俗易懂的讲, 就是GZCTF会生成一个Flag放在 $GZCTF_FLAG 环境变量中), 所以我们只要把 $GZCTF_FLAG 放到我们想放的位置就可以了

所以就采用如上命令, 把预先留的flag{testflag}替换为 $GZCTF_FLA 的值

关于最后一句的用处, 我觉得应该是, 为了防止从环境变量中得到Flag, 从而绕过了原本题目

2. bulid镜像并push到DockerHub仓库上

a. bulid镜像

在Dockerfile所在目录下, 运行

docker build -t name/testweb .

name为dockerhub名(当然如果你不push到DockerHub上这里乱写也行)
testweb为镜像名(自定义)
"."为版本号,代表latest
在这里插入图片描述

> 这里建议先学一下Docker的命令

b. 查看镜像

docker images

c. push镜像

docker logindocker push name/webtest

在这里插入图片描述

这里name/webtest记得替换, 下图框出的地址下文会用到

3. 进入GZCTF平台, 部署题目

a. 创建题目时, 选择动态容器

b. 设置容器镜像

在这里插入图片描述

容器镜像填入刚刚我们push上去的地址(即上文框出的地址, 比如docker.io/name/testweb),
服务端口根据传入的容器需求填写(即容器对外开放的端口)
剩下的参数自行决定

c. 设置Flag生成规则

点击上文界面的编辑附件及flag

如果没有需求, 直接这样也可以, 有更多需求可以查看官方文档

二. 本地上传镜像部署

1. build镜像

跟上文一样, build镜像, 看看有没有存在创建好的镜像

docker images

2. 打包镜像

docker save -o D:\image.tar name/testweb

-o后面跟着是保存路径, 其他参数执行替换

3. 打包的文件上传到服务器上

通过Xftp将tar文件上传到服务器上

4. 加载镜像

docker load -i image.tar

-i 后面跟着是.tar文件的路径

5. 进入GZCTF平台, 部署题目

跟上文配置几乎一样, 就在填写容器镜像时, 直接填

docker ps

列出来的镜像名即可(比如name/testweb)

三. 其他类型题目的部署

其他的根据GZCTF平台的提示上传附件等就可以了~~(有手就行)~~

欢迎关注订阅号催更, 接下来研究一下k8s部署GZCTF
在这里插入图片描述


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/173639.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1