Skip to content

Latest commit

 

History

History
67 lines (53 loc) · 5.19 KB

README.md

File metadata and controls

67 lines (53 loc) · 5.19 KB

LiveCTF 2022

Repository for storing challenges, infrastructure notes, streaming configuration and other version controlled bits of information for the DEF CON CTF final LiveCTF event.

Challenges used in LiveCTF

# 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

Challenge Binaries

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 structure

├── <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

Building challenges

  1. ./livectf.py build <challenge>

Managing challenges

Challenge management (creation/building/starting/stopping) is done through livectf.py, which is a light wrapper around docker. See ./livectf.py --help for usage.

Adding a challenge

  1. ./livectf.py create <challenge> will copy the template challenge to a new challenge directory.
  2. Add your challenge source in <challenge>/challenge/src
  3. Update the solution script in <challenge>/solution/solve.py

(For challenges that include more than one source file + one binary):

  1. If needed, edit REQUIRED_PACKAGES in <challenge>/challenge/Dockerfile to include any extra build/runtime dependencies
  2. If needed, change the build commands in <challenge>/challenge/build.sh
  3. If needed, change HANDOUT_FILES in <challenge>/challenge/build.sh

Adding a solution for a challenge

  1. Add any pip requirements to <challenge>/solution/requirements.txt
  2. Put your solution script in <challenge>/solution/solve.py