Fetch challenges from a CTFd competition
Often it would be nice to download all the challenges (descriptions/files/etc) from a CTF so that you have them for future reference, or to have offline, or to share with a team.
That's all this script does.
Since many CTFs have standardized around CTFd as a platform, we use that as a starting point.
- Use this tool considerately. It makes every attempt to respond sanely, and only download things not already downloaded, but make sure you are not abusing the good will of a CTF Host/Organizer.
- This tool primarily uses the JSON response from a CTFd endpoint (
/challs). Any changes to CTFd have the potential to break this tool.
pip3 install ctfdfetch
Download all the challenges from a CTF into the current folder.
ctfdfetch --server https://ctf.example.com --user hacker
For more options such as out directory, nested categories, verbosity, etc).
Development occurs on
release branch has the version currently
pushed to pypi.
# get code git clone https://gitlab.com/royragsdale/ctfdfetch.git cd ctfdfetch # setup virtualenv python3 -m venv venv3 . venv3/bin/activate # install in dev mode pip install -e .
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size ctfdfetch-0.2.0.tar.gz (5.8 kB)||File type Source||Python version None||Upload date||Hashes View|
|Filename, size ctfdfetch-0.2.0-py3-none-any.whl (7.3 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
Hashes for ctfdfetch-0.2.0-py3-none-any.whl