CSAW CTF 2016 Problems repo release

Last weekend, we ran the annual CSAW CTF qualification round. After a wonderful competition, we’ve released all the problems (along with Dockerfiles for deployment) to the public.


Last year, we had many ctf teams from around the world compete in the annual CSAW CTF. This event is geared toward college undergradates, however it is open to anyone who wishes to play.

CSAW CTF 2015 - Weebdate

After creating an account on the site and logging in, we notice pretty quickly that trying to set our profile image URL to an invalid URL returns a python error

CSAW CTF 2015 - Transfer

After quickly looking through the .pcap, we find two things: a python source file, and a large b64 string (‘2Mk16Sk5iakYx…’)

CSAW CTF 2015 - Sharpturn

We’re given a .tar.xz which contains a partially corrupted git repo. Running git log reveals 4 commits, which all primarily build out one main .c file:

CSAW CTF 2015 - Lawn Care Simulator

After browsing around the home page of the website given, we notice 2 suspect things: password MD5s are computed client side, and there is a version number at the bottom of the page. After inspecting in chrome dev tools, we see that the version number is dynamically pulled from /.git/refs/heads/master, meaning that the site’s .git is publically accessible. However, while we can read files, directory listings are turned off. After researching the basics of how git works, we grab /.git/index which contains the filenames and sha1 hashes of all files in the repo. Running this through a git index parser (e.g. gin), we get a list of all the files and hashes:

CSAW CTF 2015 - Precision


  • Overflow

CSAW CTF 2015 - Contacts


  • Overflow
  • Uninitialized Variable
  • Format String