This is an initial release after the end of the CTF. We will clean up the cobwebs after we get some rest :)
Repository for storing challenges, infrastructure notes, streaming configuration and other version controlled bits of information for the DEF CON CTF final LiveCTF event.
├── <challenge>
│ ├── challenge
│ │ ├── build.sh # Commands for building challenge binary/binaries and handout
│ │ ├── Dockerfile # Dockerfile for building challenge image
│ │ ├── flag # If you don't know, you're probably in the wrong place
│ │ ├── 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
make -C base-image
./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.- Add your challenge source in
<challenge>/challenge/src
- Change the flag in
<challenge>/challenge/flag
(For challenges that include more than one source file + one binary):
- If needed, edit
REQUIRED_PACKAGES
in<challenge>/challenge/Dockerfile
to include any extra build/runtime dependencies - If needed, change the build commands in
<challenge>/challenge/build.sh
- If needed, change
HANDOUT_FILES
in<challenge>/challenge/build.sh
- Add any pip requirements to
<challenge>/solution/requirements.txt
- Put your solution script in
<challenge>/solution/solve.py