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.
Install from PyPI:
pip install paoloctfInstall from source:
git clone https://github.com/PascalCTF/CTF-Tools.git
cd CTF-Tools
pip install -e .For challenge checker functionality (pwntools, requests):
pip install paoloctf[checker]Create a new CTF challenge directory structure:
paoloctf generate web
paoloctf generate pwn --name buffer_overflow
paoloctf gen crypto -n rsa_challengeThis 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
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.csvpaoloctf --help
paoloctf generate --help
paoloctf load --help
git clone https://github.com/PascalCTF/CTF-Tools.git
cd CTF-Tools
pip install -e ".[dev]"python -m buildpython -m twine upload dist/*This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
Contributions are welcome. Please submit a pull request or open an issue on GitHub.