Skip to content

Latest commit

 

History

History
65 lines (51 loc) · 4.91 KB

README.md

File metadata and controls

65 lines (51 loc) · 4.91 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 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