创建和运行捕捉旗帜比赛的工具
ctfcli的Python项目详细描述
ctfcli公司
ctfcli是一个管理捕获标志事件和挑战的工具。
ctfcli
提供了质询规范和模板,以便于生成不同类别的质询。它还提供了与CTFdrestapi的集成,以允许命令行上载挑战并与CI/CD构建系统集成。在
ctfcli
具有选项卡完成、REPL接口(多亏了Python-Fire)和自定义命令的插件支持。在
WIP:ctfcli是一个alpha项目,将发生更改。更新时,请确保锁定版本并阅读变更日志。
安装和使用
ctfcli可以与pip install ctfcli
一起安装
1。创建事件
ctfcli将当前文件夹转换为CTF事件git repo。它要求您使用的CTFd实例的基本url和一个访问令牌。在
❯ ctf init
Please enter CTFd instance URL: https://demo.ctfd.io
Please enter CTFd Admin Access Token: d41d8cd98f00b204e9800998ecf8427e
Do you want to continue with https://demo.ctfd.io and d41d8cd98f00b204e9800998ecf8427e [y/N]: y
Initialized empty Git repository in /Users/user/Downloads/event/.git/
这将使用.ctf
文件创建.ctf
文件夹,该文件将指定URL、访问令牌,并记录为此事件专用的所有挑战。在
2。添加挑战
事件是由挑战组成的。挑战可以从子目录中提出,也可以从另一个存储库中提取。远程质询被拉入事件存储库,并在.ctf/config
文件中保存一个引用。在
❯ ctf challenge add crypto/stuff
❯ ctf challenge add https://github.com/challenge.git
challenge
Cloning into 'challenge'...
remote: Enumerating objects: 624, done.
remote: Counting objects: 100% (624/624), done.
remote: Compressing objects: 100% (540/540), done.
remote: Total 624 (delta 109), reused 335 (delta 45), pack-reused 0
Receiving objects: 100% (624/624), 6.49 MiB | 21.31 MiB/s, done.
Resolving deltas: 100% (109/109), done.
3。安装挑战
安装质询将使用API在CTFd实例中自动创建质询。在
❯ ctf challenge install [challenge.yml | DIRECTORY]
❯ ctf challenge install buffer_overflow
Found buffer_overflow/challenge.yml
Loaded buffer_overflow
Installing buffer_overflow
Success!
4。更新挑战
同步质询将使用API自动更新CTFd实例中的质询。在challenge.yml
文件中所做的任何更改都将反映在您的实例中。在
❯ ctf challenge sync [challenge.yml | DIRECTORY]
❯ ctf challenge sync buffer_overflow
Found buffer_overflow/challenge.yml
Loaded buffer_overflow
Syncing buffer_overflow
Success!
挑战模板
ctfcli
包含预先制作的质询模板,以便使用安全默认值更快地创建CTF质询。在
ctf challenge new
├── binary
├── crypto
├── programming
└── web
❯ ctf challenge new binary
/Users/user/.virtualenvs/ctfcli/lib/python3.7/site-packages/ctfcli-0.0.1-py3.7.egg/ctfcli/templates/binary/default
name [Hello]: buffer_overflow
❯ ls -1 buffer_overflow
Makefile
README.md
WRITEUP.md
challenge.yml
dist/
src/
Contributions欢迎改进挑战模板,使CTF挑战对每个人都更好!
挑战性规范
ctfcli
提供了一个challenge specification(challenge.yml
),概述了挑战的主要细节。在
ctfcli
生成或处理的每个质询都应该有一个challenge.yml
文件。在
规范格式已经过测试,并在生产活动中与CTFd一起使用,但欢迎对challenge.yml
格式提出意见、建议和pr。在
插件
ctfcli
插件本质上是通过动态类修改添加到命令行界面的。请参见plugin documentation page中的一个简单示例。在
ctfcli
是一个alpha项目!插件接口可能会改变!
- 项目
标签: