
DEF CON 30 CTFチャレンジのバイナリ、ビルドスクリプト、およびソルブスクリプトのコレクション。バイナリエクスプロイトとリバースエンジニアリングの練習用です。
DEF CON CTF 決勝の LiveCTF イベント向けに、チャレンジ、インフラストラクチャのメモ、ストリーミング設定、その他のバージョン管理された情報を保存するリポジトリです。
| # | チャレンジ名 | 対戦チーム | 勝者 |
|---|---|---|---|
| ラウンド16: 1 | syscall-me-maybe | Shellphish vs PTB_WTL | Shellphish |
| ラウンド16: 2 | open-to-interpretation | StarBugs vs ./V /home/r/.bin/tw | StarBugs |
| ラウンド16: 3 | nopcoding | OSUSEC vs Maple Mallard Magistrates | Maple Mallard Magistrates |
| ラウンド16: 4 | nerd-sniped | the new organizers vs [email protected] | the new organizers |
| ラウンド16: 5 | fairy-nuff | DiceGuesser vs Sauercloud | Sauercloud |
| ラウンド16: 6 | seek-and-destroy | 侍 vs perfect r✪✪✪t | perfect r✪✪✪t |
| ラウンド16: 7 | nvulns | r3kapig vs Water Paddler | r3kapig |
| ラウンド16: 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 |
各ラウンドで使用された正確なチャレンジバイナリでプレイしたい場合は、以下の説明に従って自分でビルドするか、release の 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>チャレンジの管理(作成・ビルド・起動・停止)は、docker の軽量ラッパーである livectf.py を使用して行います。使い方については ./livectf.py --help を参照してください。
./livectf.py create <challenge> は、テンプレートチャレンジを新しいチャレンジディレクトリにコピーします。<challenge>/challenge/src に追加します。<challenge>/solution/solve.py のソリューションスクリプトを更新します。(複数のソースファイルと 1 つのバイナリを含むチャレンジの場合):
<challenge>/challenge/Dockerfile 内の REQUIRED_PACKAGES を編集し、追加のビルド/実行時依存関係を含めます。<challenge>/challenge/build.sh 内のビルドコマンドを変更します。<challenge>/challenge/build.sh 内の HANDOUT_FILES を変更します。<challenge>/solution/requirements.txt に追加します。<challenge>/solution/solve.py に配置します。