创建和运行捕捉旗帜比赛的工具

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文件中保存一个引用。在

^{pr2}$
❯ 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 specificationchallenge.yml),概述了挑战的主要细节。在

ctfcli生成或处理的每个质询都应该有一个challenge.yml文件。在

规范格式已经过测试,并在生产活动中与CTFd一起使用,但欢迎对challenge.yml格式提出意见、建议和pr。在

插件

ctfcli插件本质上是通过动态类修改添加到命令行界面的。请参见plugin documentation page中的一个简单示例。在

ctfcli是一个alpha项目!插件接口可能会改变!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SUN次要代码309含义   java避免为空元素生成XML自关闭标记,并生成自定义的<XML>开始标记   java使用json和restful将数组数据从本地sqlite数据库插入SQL Server   java Spring Boot 1.5.9字符编码问题   LInkedIn讨论中的java 401错误   位图Java:检查多个位向量/位集是否相交的最快方法?   macos如何让Java应用程序以图标出现在Mac OS X dock中   java如何删除netbeans中的@SuppressWarnings(“未使用的”)?   apachestorm中的java自定义序列化   java可以退出代码还是应该终止main?   递归如何在Java中递归地绘制简单的线条?   unicode在Java中确定特定字体是否可以呈现特定字符   打开并阅读带有Selenium/Katalon(Java)特定标题的电子邮件文本(来自Gmail)