- 
                Notifications
    You must be signed in to change notification settings 
- Fork 5
一些常见问题
        SpaceSkyNet edited this page Mar 26, 2022 
        ·
        2 revisions
      
    总所周知的原因,ctfd的challenge.js中的对submit flag处理时,按钮的id不对,然后就会交不上去flag(都3.4.0了怎么还没改……)
在 Linux 系统下(或者在WSL中), 切换到修改过的ctfd的根目录下,执行
npm run build你就可以在 CTFd/themes 目录下对应 admin 和 core 下的 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 | 

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