Skip to content

一些常见问题

SpaceSkyNet edited this page Mar 26, 2022 · 2 revisions

Build 主题的静态文件(*.min.js, etc)

总所周知的原因,ctfd的challenge.js中的对submit flag处理时,按钮的id不对,然后就会交不上去flag(都3.4.0了怎么还没改……)

在 Linux 系统下(或者在WSL中), 切换到修改过的ctfd的根目录下,执行

npm run build

你就可以在 CTFd/themes 目录下对应 admincore 下的 static 目录下找到build好的文件。

(本仓库里已经有build好的需要修改的静态文件,在安装过程中已经替换)

添加题目

制作新的题目时,题目的docker-compose编写参见BIT-NSC/ctfd-owl.docker-compose,CTFd题目配置如下:

Options Content
Challenge Type 题目类型(选dynamic_check_docker)
Deployment Type 部署方式(选SINGLE-DOCKER-COMPOSE,另一个无效)
Dirname 题目所在文件夹(相对于source的相对路径,题目docker-compose文件夹放到source下)
FRP Type frp类型(DIRECT为ip直接访问(域名加端口),HTTP为子域名访问)
FRP Port 题目内网 docker-compose 中expose端口 (例子中为80)
Flag Type 如果动态生成flag选择Dynamic;如果像正常题目一样的静态flag,选择Static并在题目flag里添加flag

challenges_new

建议将题目所用镜像提前 build 好并 pull 到 CTFd 的服务器上,否则第一次 launch 时可能会长时间无反应。

使用 V3.4.2+ 版本

CTFd 更新了 cmarkgfm 版本,详见Mark 3.4.3#2063.

解决方法:

在 clone CTFd 前删除-b 3.4.0,并在Dockerfile下方如示位置中加入下面的代码后再继续docker-compose的操作。

...
RUN python -m ensurepip --upgrade
RUN python -m pip install --upgrade cmarkgfm==0.8.0
RUN chmod a+x $WORKDIR/docker-entrypoint.sh
...
Clone this wiki locally