docker 部署ctf php动态靶机

本文在ubuntu20.04 下进行,且Linux安装,换源以及相关工具和操作已经准备完毕

docker 安装

首先先进入根目录
cd /
然后进入root //注意最好不要退出root,为了避免你们出错,我命令都加了sudo,如果已一直是su了就可以不用
su
然后
curl -fsSL [https://get.docker.com](https://get.docker.com) | bash -s docker --mirror Aliyun
然后 docker images

如图则为安装成功

配置dockerhub加速

https://www.aliyun.com/
注册一个账号
然后在搜索框搜“容器”得到以下界面

然后

然后


然后输入docker info
出现则为成功

docker-compose安装

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose
或者
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose
然后授权
sudo chmod +x /usr/local/bin/docker-compose
然后输入检查
docker-compose --version

返回版本就成功了捏

dockerhub

https://hub.docker.com/
注册一个账号
然后在ubuntu登录
sudo docker login
然后把你的题目文件夹丢进去虚拟机
以下以一个web题为例子
进入到你题目文件夹

源码和sh放在同一个目录下,Dockerfile放在与src目录平行的位置

Dockerfile:
内容如下

1
2
3
4
5
FROM ctftraining/base_image_nginx_mysql_php_73      //基础镜像
LABEL Author="J_0k3r" //作者
LABEL Blog="https://j-0k3r.github.io/" //博客
//上面这两行可有可无
COPY src /var/www/html //docker内执行的操作,把src的复制到后面的路径中

flag.sh:
内容

1
2
3
#!/bin/sh	#必需的东西没什么好讲的
sed -i "s/flag{testflag}/$GZCTF_FLAG/" /var/www/html/index.php #使用平台的动态flag替换index.php中的flag,这里我使用的平台为GZCTF,因此动态flag环境变量为$GZCTF_FLAG,其他平台一般为$FLAG
export GZCTF_FLAG="" #这句应该是对接平台的动态flag接口

使用时请务必把中文注释都删掉
上面的都准备好之后
开始本地搭镜像并且传到dockerhub

先在dockerhub建好,再本地搭
sudo docker build -t 用户名/题目名 .
用户名是你dockerhub登录的用户名,题目名要和你在dockerhub上面的一样(命令后面的.不要忘了

这样就是成功了
然后push到dockerhub
sudo docker push 用户名/题目名

然后就可以去dockerhub看看

然后就是测试题目了
这里就不展示测试了
到这,题目docker就搞定了


docker 部署ctf php动态靶机
http://example.com/2023/12/25/docker 部署ctf动态靶机/
作者
J_0k3r
发布于
2023年12月25日
许可协议
BY J_0K3R