
本仓库用于存储 DEF CON CTF 决赛 LiveCTF 活动的挑战、基础设施说明、直播配置以及其他受版本控制的信息。
| # | 挑战名称 | 参赛队伍 | 胜者 |
|---|---|---|---|
| 十六强赛: 1 | syscall-me-maybe | Shellphish vs PTB_WTL | Shellphish |
| 十六强赛: 2 | open-to-interpretation | StarBugs vs ./V /home/r/.bin/tw | StarBugs |
| 十六强赛: 3 | nopcoding | OSUSEC vs Maple Mallard Magistrates | Maple Mallard Magistrates |
| 十六强赛: 4 | nerd-sniped | the new organizers vs [email protected] | the new organizers |
| 十六强赛: 5 | fairy-nuff | DiceGuesser vs Sauercloud | Sauercloud |
| 十六强赛: 6 | seek-and-destroy | 侍 vs perfect r✪✪✪t | perfect r✪✪✪t |
| 十六强赛: 7 | nvulns | r3kapig vs Water Paddler | r3kapig |
| 十六强赛: 8 | quick-cast | Katzebin vs Straw Hat | Straw Hat |
| 四分之一决赛: 1 | story-time | StarBugs vs the new organizers | StarBugs |
| 四分之一决赛: 2 | stacks | Shellphish vs Maple Mallard Magistrates | Maple Mallard Magistrates |
| 四分之一决赛: 3 | pacman | r3kapig vs Sauercloud | [进入突然死亡赛] |
| 四分之一决赛: 3.5 | over-easy | r3kapig vs Sauercloud | r3kapig |
| 四分之一决赛: 4 | no-roplem | Straw Hat vs perfect r✪✪✪t | perfect r✪✪✪t |
| 半决赛: 1 | aes-of-spades | Maple Mallard Magistrates vs StarBugs | StarBugs |
| 半决赛: 2 | loopy-brain | r3kapig vs perfect r✪✪✪t | [进入突然死亡赛] |
| 半决赛: 2.5 | fast-updater | r3kapig vs perfect r✪✪✪t | perfect r✪✪✪t |
| 决赛 | f-in-the-stack | StarBugs vs perfect r✪✪✪t | StarBugs |
如果你有兴趣使用每轮比赛中使用的原始挑战二进制文件进行练习,你可以按照下面的说明自行构建,或者查看 发布版 的 handouts/ 子文件夹。
├── <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>挑战管理(创建/构建/启动/停止)通过 livectf.py 完成,它是 docker 的一个轻量级封装。用法参见 ./livectf.py --help。
./livectf.py create <challenge> 会将模板挑战复制到一个新的挑战目录。<challenge>/challenge/src 中添加你的挑战源代码。<challenge>/solution/solve.py 中的解题脚本。(对于包含多个源文件 + 一个二进制文件的挑战):
<challenge>/challenge/Dockerfile 中的 REQUIRED_PACKAGES,以包含任何额外的构建/运行时依赖项。<challenge>/challenge/build.sh 中的构建命令。<challenge>/challenge/build.sh 中的 HANDOUT_FILES。<challenge>/solution/requirements.txt。<challenge>/solution/solve.py。