LiveCTF 2022
Repository per archiviare challenge, note sull'infrastruttura, configurazione dello streaming e altre informazioni versionate per l'evento finale LiveCTF del DEF CON CTF.
Challenge usate in LiveCTF
| # | Nome Challenge | Competitori | Vincitore |
|---|
| Ottavi di finale: 1 | syscall-me-maybe | Shellphish vs PTB_WTL | Shellphish |
| Ottavi di finale: 2 | open-to-interpretation | StarBugs vs ./V /home/r/.bin/tw | StarBugs |
| Ottavi di finale: 3 | nopcoding | OSUSEC vs Maple Mallard Magistrates | Maple Mallard Magistrates |
| Ottavi di finale: 4 | nerd-sniped | the new organizers vs [email protected] | the new organizers |
| Ottavi di finale: 5 | fairy-nuff | DiceGuesser vs Sauercloud | Sauercloud |
| Ottavi di finale: 6 | seek-and-destroy | 侍 vs perfect r✪✪✪t | perfect r✪✪✪t |
| Ottavi di finale: 7 | nvulns | r3kapig vs Water Paddler | r3kapig |
| Ottavi di finale: 8 | quick-cast | Katzebin vs Straw Hat | Straw Hat |
| Quarti di finale: 1 | story-time | StarBugs vs the new organizers | StarBugs |
| Quarti di finale: 2 | stacks | Shellphish vs Maple Mallard Magistrates | Maple Mallard Magistrates |
| Quarti di finale: 3 | pacman |
Binary delle challenge
Se sei interessato a giocare con gli stessi binary delle challenge usati durante ogni round, puoi costruirli tu stesso come descritto di seguito, oppure guardare nella sottocartella handouts/ della release.
Struttura delle challenge
├── <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
Costruire le challenge
./livectf.py build <challenge>
Gestione delle challenge
La gestione delle challenge (creazione/costruzione/avvio/arresto) avviene tramite livectf.py, un wrapper leggero intorno a docker. Vedi ./livectf.py --help per l'utilizzo.
Aggiungere una challenge
./livectf.py create <challenge> copia la challenge template in una nuova directory della challenge.
- Aggiungi il sorgente della tua challenge in
<challenge>/challenge/src
- Aggiorna lo script di soluzione in
<challenge>/solution/solve.py
(Per le challenge che includono più di un file sorgente + un binary):
- Se necessario, modifica
REQUIRED_PACKAGES in <challenge>/challenge/Dockerfile per includere eventuali dipendenze extra di build/runtime
- Se necessario, cambia i comandi di build in
<challenge>/challenge/build.sh
- Se necessario, cambia
HANDOUT_FILES in <challenge>/challenge/build.sh
Aggiungere una soluzione per una challenge
- Aggiungi eventuali requisiti pip a
<challenge>/solution/requirements.txt
- Inserisci il tuo script di soluzione in
<challenge>/solution/solve.py