前言
出动态flag题的时候学到的
以出题的经过为例
PHP
第一步
选择你需要的靶机环境模板
在release里面选择你需要的环境并下载
这里以web-nginx-php73为例
第二步
把题目源码放在src文件夹下,可以把同目录下的shell.php和flag.php删掉
Dockerfile里的内容没什么改动的必要
要看的主要是docker-entrypoint.sh文件
# 将FLAG写入文件 请根据需要修改
echo $INSERT_FLAG | tee /flag
按需修改,其它部分也不用动
第三步
题目的文件夹下执行命令
docker build -t Hub的id/镜像名:自定tags .
第四步
在本地docker环境下检查是否能够运行,没有问题的话就push to hub即可
Python
第一步是一样的,这里以web-flask-python_3.8为例
第二步
题目名设置为app.py,放在src文件夹下
如使用了 pycryptodome
等第三方库,请在 ./Dockerfile
内补充pip安装语句
第三步
题目的文件夹下执行命令
docker build -t Hub的id/镜像名:自定tags .
第四步
检查运行,这个模板的默认暴露端口位于8080
docker run -p 8080:8080 镜像名:tags
没问题就push to hub
Nodejs
有一个很大的问题就是巨魔模板里面拉的node官方镜像高达1.1个g,我们需要自己修改一下Dockerfile
第一行修改成这个即可
FROM node:10-alpine