各个环境说明请进入对应目录查看
镜像存放地址:
registry.cn-hangzhou.aliyuncs.comdockerhub
镜像命名空间: 阿里云:ctfhub_base, dockerhub:ctfhub
例如,要拉取web_httpd_php_5.6,则完整的pull命令如下
# 从dockerhub拉取
docker pull ctfhub/web_httpd_php_5.6
# 从阿里云拉取
docker pull registry.cn-hangzhou.aliyuncs.com/ctfhub_base/web_httpd_php_5.6在基础镜像中存在如下4个文件(部分环境只有前3个)
容器创建后首个执行的程序,负责检测环境,初始化相关参数,拉起后续启动流程,一般来说该文件无须改动
负责处理flag存放逻辑,例如需要将flag写入文件或是写入db,具体可参考每个基础环境的example
如在Dockerfile中不进行COPY此文件,则flag将按照默认逻辑执行,即读取环境变量FLAG写入至/flag中
负责处理自行安装的程序如何启动,例如 redis-server等,需要注意启动应当为后台启动(即在命令末尾加上&),防止卡主后续内置应用的启动过程
#!/bin/bash
/usr/bin/redis-server &在pwn题中负责每次连接建立后处理的过程
所有环境遵循如下启动顺序
┌──────────────────┐
│ /entrypoint.sh │
└────────┬─────────┘
│
┌────────▼─────────┐
│ /flag.sh │
└────────┬─────────┘
│
┌────────▼─────────┐
│ /start.sh │
└────────┬─────────┘
│
┌────────▼─────────┐
│ Every Link ◄──┐
└────────┬─────────┘ │
│ │
┌────────▼─────────┐ │
│ /run.sh ├──┘
└──────────────────┘