Ship it: ctfdfetch edition

Today I wrote and shipped ctfdfetch a simple python tool to “fetch” challenges from any CTFd hosted CTF.

The code is on gitlab and pypi. This means downloading all the challenges for a CTF locally can be as simple as:

pip3 install ctfdfetch
ctfdfetch --server https://ctf.example.com --user hacker

Most of the code I was familiar with such as requests and beautiful soup, so probably the biggest thing I learned was how to package everything up. Even that had much better documentation then I remember.

It’s not all fun and games. I actually started to write this program in go, but it seemed like I was fighting against the gain more than I would have liked to even just to do something simple like a POST request with a cookie from a previous connection. So still more to learn.