CLI tool for creating and managing CTF challenges for PascalCTF
Project description
paoloctf
About
paoloctf is a command-line tool for creating and managing CTF challenges. It is designed for the PascalCTF cybersecurity event and ensures compatibility with the CTF-Checker validation tool.
Installation
Install from PyPI:
pip install paoloctf
Install from source:
git clone https://github.com/PascalCTF/CTF-Tools.git
cd CTF-Tools
pip install -e .
Optional Dependencies
For challenge checker functionality (pwntools, requests):
pip install paoloctf[checker]
Usage
Generate a New Challenge
Create a new CTF challenge directory structure:
paoloctf generate web
paoloctf generate pwn --name buffer_overflow
paoloctf gen crypto -n rsa_challenge
This creates a challenge directory with the following structure:
challenge/
├── attachments/ # Files to distribute to participants
├── src/ # Source code (not distributed)
├── writeup/ # Official writeup
├── checker/ # Automated flag checker
│ └── __main__.py
├── authors.txt # Challenge authors
├── description.md # Challenge description
├── endpoint.txt # Connection details
├── flags.txt # Challenge flags
├── order.txt # Display order
├── points.txt # Point value
├── tags.txt # Category tags
├── timeout.txt # Checker timeout
└── title.txt # Challenge title
Export Challenges to CSV
Parse CTF challenges into a CSV file for CTFd import:
paoloctf load ./challenges
paoloctf load ./challenges --output ctfd_import.csv
paoloctf export ./challenges -o export.csv
Command Reference
paoloctf --help
paoloctf generate --help
paoloctf load --help
Development
Setup
git clone https://github.com/PascalCTF/CTF-Tools.git
cd CTF-Tools
pip install -e ".[dev]"
Build
python -m build
Publish
python -m twine upload dist/*
License
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
Contributing
Contributions are welcome. Please submit a pull request or open an issue on GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paoloctf-0.1.2.tar.gz.
File metadata
- Download URL: paoloctf-0.1.2.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8296dbdae1cfd0460792756f2fc77f7ae88cda55754f3038b7227ab056ffa5c1
|
|
| MD5 |
e6fb65031864399a3674fd160a7c00ed
|
|
| BLAKE2b-256 |
c29bb0e0800e4c1bd6aa4bf0730f6558e55fd93bb643e48532b2b23a9270dbd2
|
File details
Details for the file paoloctf-0.1.2-py3-none-any.whl.
File metadata
- Download URL: paoloctf-0.1.2-py3-none-any.whl
- Upload date:
- Size: 19.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8df870f030d59ee347ec4ca55d3c27319ac701b74d1de170a5a9e399e9e1895
|
|
| MD5 |
4d67025e2698a54e42d84a43c4ba0d96
|
|
| BLAKE2b-256 |
da253f66c69ea2a45d913dd7627f77ad8330c9abe3438f5ff01b0d0024dc665f
|