LiveCTF 2022
DEF CON CTF 결승전 LiveCTF 이벤트의 챌린지, 인프라 관련 메모, 스트리밍 설정 및 기타 버전 관리되는 정보를 저장하기 위한 저장소입니다.
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 |
챌린지 바이너리
각 라운드에서 사용된 정확한 챌린지 바이너리로 플레이하고 싶다면, 아래 설명대로 직접 빌드하거나 릴리스의 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의 솔루션 스크립트를 업데이트하세요.
(소스 파일이 하나 이상 + 바이너리 하나를 포함하는 챌린지의 경우):
- 필요한 경우
<challenge>/challenge/Dockerfile의 REQUIRED_PACKAGES를 편집하여 추가 빌드/런타임 의존성을 포함하세요.
- 필요한 경우
<challenge>/challenge/build.sh의 빌드 명령을 변경하세요.
- 필요한 경우
<challenge>/challenge/build.sh의 HANDOUT_FILES를 변경하세요.
챌린지 솔루션 추가하기
- pip 요구 사항이 있으면
<challenge>/solution/requirements.txt에 추가하세요.
- 솔루션 스크립트를
<challenge>/solution/solve.py에 넣으세요.