
Collection of DEF CON 30 CTF challenge binaries, build scripts, and solve scripts for practicing binary exploitation and reverse engineering.
Repository for storing challenges, infrastructure notes, streaming configuration and other version controlled bits of information for the DEF CON CTF final LiveCTF event.
| # | Challenge Name | Competitors | Victor |
|---|---|---|---|
| Round of 16: 1 | syscall-me-maybe | Shellphish vs PTB_WTL | Shellphish |
| Round of 16: 2 | open-to-interpretation | StarBugs vs ./V /home/r/.bin/tw | StarBugs |
| Round of 16: 3 | nopcoding | OSUSEC vs Maple Mallard Magistrates | Maple Mallard Magistrates |
| Round of 16: 4 | nerd-sniped | the new organizers vs [email protected] | the new organizers |
| Round of 16: 5 | fairy-nuff | DiceGuesser vs Sauercloud | Sauercloud |
| Round of 16: 6 | seek-and-destroy | 侍 vs perfect r✪✪✪t | perfect r✪✪✪t |
| Round of 16: 7 | nvulns | r3kapig vs Water Paddler | r3kapig |
| Round of 16: 8 | quick-cast | Katzebin vs Straw Hat | Straw Hat |
| Quarter-Finals: 1 | story-time | StarBugs vs the new organizers | StarBugs |
| Quarter-Finals: 2 | stacks | Shellphish vs Maple Mallard Magistrates | Maple Mallard Magistrates |
| Quarter-Finals: 3 | pacman | r3kapig vs Sauercloud | [Went to sudden death] |
| Quarter-Finals: 3.5 | over-easy | r3kapig vs Sauercloud | r3kapig |
| Quarter-Finals: 4 | no-roplem | Straw Hat vs perfect r✪✪✪t | perfect r✪✪✪t |
| Semi-Finals: 1 | aes-of-spades | Maple Mallard Magistrates vs StarBugs | StarBugs |
| Semi-Finals: 2 | loopy-brain | r3kapig vs perfect r✪✪✪t | [Went to sudden death] |
| Semi-Finals: 2.5 | fast-updater | r3kapig vs perfect r✪✪✪t | perfect r✪✪✪t |
| Finals | f-in-the-stack | StarBugs vs perfect r✪✪✪t | StarBugs |
If you're interested in playing on the exact challenge binaries used during each round, you can either build them yourself as described below, or look in the handouts/ subfolder of the release.
├── <challenge>
│ ├── challenge
│ │ ├── build.sh # Commands for building challenge binary/binaries and handout
│ │ ├── config.toml # Config file for flag submitter
│ │ ├── Dockerfile # Dockerfile for building challenge image
│ │ ├── run.sh # Command(s) to start the challenge
│ │ └── src # This is where the source for the challenge will go
│ │ └── challenge.c
│ └── solution
│ ├── requirements.txt # Solution script requirements
│ └── solve.py # Challenge solve script
./livectf.py build <challenge>Challenge management (creation/building/starting/stopping) is done through livectf.py, which is a light wrapper around docker. See ./livectf.py --help for usage.
./livectf.py create <challenge> will copy the template challenge to a new challenge directory.<challenge>/challenge/src<challenge>/solution/solve.py(For challenges that include more than one source file + one binary):
REQUIRED_PACKAGES in <challenge>/challenge/Dockerfile to include any extra build/runtime dependencies<challenge>/challenge/build.shHANDOUT_FILES in <challenge>/challenge/build.sh<challenge>/solution/requirements.txt<challenge>/solution/solve.py