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.
Metadata
Release files for paoloctf 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| paoloctf-0.1.2.tar.gz | 19.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| paoloctf-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.8 kB
Release files / paoloctf-0.1.2.tar.gz
| Download URL | paoloctf-0.1.2.tar.gz |
|---|---|
| Size | 19.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8296dbdae1cfd0460792756f2fc77f7ae88cda55754f3038b7227ab056ffa5c1
|
|
BLAKE2b-256 checksum How to use checksums |
c29bb0e0800e4c1bd6aa4bf0730f6558e55fd93bb643e48532b2b23a9270dbd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / paoloctf-0.1.2-py3-none-any.whl
| Download URL | paoloctf-0.1.2-py3-none-any.whl |
|---|---|
| Size | 19.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a8df870f030d59ee347ec4ca55d3c27319ac701b74d1de170a5a9e399e9e1895
|
|
BLAKE2b-256 checksum How to use checksums |
da253f66c69ea2a45d913dd7627f77ad8330c9abe3438f5ff01b0d0024dc665f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|