Giter VIP home page Giter VIP logo

ctf-docker-template's Introduction

CTF 动态靶机模板

对于各个模板的详细适用情况,请见各情景的文件夹内的README

本仓库内的Docker容器模板均支持

  • $GZCTF_FLAG
  • $DASCTF
  • $FLAG

三种动态flag部署方式,支持GZCTF、CTFd、安恒DASCTF等支持Docker动态部署题目靶机的平台

有问题请开issue,好用请点star

请注意,此仓库内的模板仅在Linux环境(linux/amd64)下进行测试并保证可用性,如果为windows(windows/amd64)或者macos(linux/arm)等其他架构,不保证不会出问题😔

关于每个模板内的文件内容

这里以 crypto-python_3.8-no_socket 模板为例

.
├── docker
│   └── docker-compose.yml
├── Dockerfile
├── README.md
├── service
│   └── docker-entrypoint.sh
└── src
    └── main.py

docker 文件夹内存放与docker有关的文件,如 docker-compose.yml 文件,内部已经设置好了端口转发和测试用flag,便于测试容器环境

Dockerfile 为docker容器编译文件,用于设计docker容器,可在其中设置换源、增添软件包等等

service 文件夹内存放着与服务有关的文件,如 docker-entrypoint.sh 用于定义容器的入口点

src 文件夹内存放着题目的项目源码,也可以是pwn题目的二进制文件,即为题目的相关文件

config 文件夹内存放着容器内服务相关的配置文件,如 nginx 的配置文件等等

其他文件说明

flag.php 用于直接查看flag文件的测试文件,访问可直接查看当前题目根目录下的flag文件,如果文件不存在则会输出error

shell.php 一句话木马,用于测试web容器稳定性

About no_socket with crypto

no_socket指的是源代码中没有引入socket相关的库,当希望达到的效果是类似于当用户通过特定端口连接到靶机时,就运行python代码,并将代码的运行界面转发给用户。如果已经引入了socket相关的库,请直接使用如python app.py这类语句启动python程序,并让程序自行监听特定端口

关于软件源换源

环境中涉及软件包处理的情形,如apt、yum,均已换源为ustc源,如不处于**大陆网络环境/启用了全局代理环境,请自行修改相关换源语句,避免由于还原带来的负优化

关于容器无限重启,看日志发现sh文件错误

常见以下报错:

/docker-entrypoint.sh: line 2: $'\r': command not found
/docker-entrypoint.sh: line 26: syntax error: unexpected end of file

这是因为Windows与Linux文件编码在换行的操作不一样,导致Linux的shell无法解析脚本文件。解决方案如下

sed -i ""s/\r//"" docker-entrypoint.sh

即通过正则匹配,直接替换掉 \r 字符,不过此方案不一定能完全解决问题

建议直接在linux下执行 git clone 操作,或者直接从github下载zip版本的源码,避免一些奇奇怪怪的编码问题

请注意,sed指令在unix(macos)下的预期执行效果与linux下的预期执行效果不同

如有其他问题

欢迎直接提issue,一般于三个工作日内就能有回复,也请遇到问题的时候能提供当前的整体题目文件,以及具体的报错/信息

也欢迎通过 CTF-Archives售后快速服务群 或者 CTF快速入门手册 - QQ群聊 联系维护人员寻求帮助

A little advertisement

Randark-JMT 可以无偿为CTF平台搭建、题目打包提供一定帮助,欢迎联系😘

ctf-docker-template's People

Contributors

randark-jmt avatar probiusofficial avatar gtg2619 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.