728x90
반응형
🚩 CTF(Capture the Flag)
- CTF란 Capture the Flag의 줄임말로, 해킹대회에서의 CTF는 문제를 풀고 숨겨진 깃발(정답)을 찾아 득점하는 해킹대회입니다.
- 보통 온라인으로 진행되며, 오프라인으로 진행되는 대회는 드물거나 온라인 대회 본선을 오프라인으로 진행하는 경우입니다.
- • CTF에는 크게 2가지 방식인, Jeopardy 와 Attack-Defense 로 나뉘며 각 방식 별 특징은 아래와 같습니다..
Jeopardy Attack-Defense 여러가지 분야의 문제들을 각각 푸는 방식. 문제의 난이도에 따라 점수가 달라지며, 방식의 차이에 따라 동일 분야의 낮은 배점 문제를 먼저 해결하지 않으면 더 높은 배점 문제를 열어볼 수 없는 형태도 존재 공방전 형태라 불리며 각 팀 별로 할당 받은 서버에 대한 취약점을 발견하고 패치 하거나, 해당 취약점을 이용하여 상대 팀 서버에 공격을 가하거나, 취약점 공격에 대한 방어에 성공할 경우 점수 혹은 플래그를 얻는 방식 - Jeopardy 방식인 대회의 기본적인 트랙은 Web, Pwnable, Reversing, Crypto, Forensic, Misc 로 이루어집니다.
🧠 CTF 참여를 위한 기본적인 지식
- 기초적인 프로그래밍 지식(C, Java, Python 등)
- 프로그래밍 내의 취약한 함수, 문법 등
- 직접 코딩하거나 코드를 읽고 분석하기 위한 지식
- 웹 페이지의 구성 및 웹 동작 방식, 웹 통신 등에 대한 이해
- 워게임 사이트에서의 다양한 문제 풀이 경험
🗓️ CTF 일정 및 각종 대회 링크 확인하는 방법
- 아래 사이트는 전세계에서 열리는 모든 대회의 일정을 보여주며, 링크와 정보를 제공합니다.
- 사이트를 들어가 Calendar 카테고리에서 일정 확인이 가능하며, 구글 캘린더에 일정을 추가 할 수도 있습니다.
- CTFs 카테고리에서는 각종 대회들의 링크와 정보 확인이 가능합니다.
- 또한 진행되었던 대회가 끝나면 Archive - Writeups 에서 참가자들의 문제 풀이를 확인할 수 있습니다.
🛠️ CTF 서버 구축하기
- 만약 CTF를 열고 싶다면, 직접 Docker를 사용하여 구축하는 방법도 있지만 CTFd같은 오픈소스 프레임워크를 사용하여 CTF 사이트를 간단하게 구축할 수 있습니다.
- CTFd 지원
- admin 인터페이스에서 문제 , 카테고리, 힌트, 플래그 생성 가능
- 점수 동적 채점
- 문제 잠금 해제 지원
- 사용자 지정 플래그 플러그인
- 서버 혹은 AWS-S3 에 호환하는 파일 업로드
- 브루트포스 공격으로부터의 보호
- 개인 혹은 팀 경기 진행(팀 구성 기능)
- 사용자로부터의 점수 숨김
- 특정 시간동안 점수 고정
- 점수 및 진행도 그래프 지원
- 마크다운 컨텐츠 관리 시스템
- SMTP + Mailgun 이메일 지원
- 이메일 확인 지원
- 패스워드 잊어버린 경우의 지원
- 자동 경기 시작 및 종료
- 팀 관리, 숨기기, 밴 처리
- 플러그인과 테마를 사용한 커스터마이징
- CTF 데이터 가져오기 및 내보내기 지원
- 그 외…
- CTFd 지원
- 서버에서 아래 명령어를 사용해 CTFd 프레임워크를 사용할 수 있습니다.
sudo apt-get install git
sudo git clone https://github.com/CTFd/CTFd.git
sudo cd CTFd
sudo apt install docker-compose
sudo docker pull ctfd/ctfd
sudo docker run -p 8000:8000 -it ctfd/ctfd
- 위 과정을 거쳤다면 127.0.0.1:8000 페이지로 접속해 아래 페이지를 볼 수 있게 됩니다.
- 아래 주소는 CTFd에 대한 튜토리얼, 정보 등이 담긴 문서 사이트입니다.
- CTFd 프레임워크를 어떻게 활용할 수 있는지 참고하는데 도움이 됩니다.
- https://docs.ctfd.io/
⚙️ CTFd와 유사한 오픈소스 CTF 엔진
Mellivora
- PHP로 작성된 CTF 엔진
- https://github.com/Nakiami/mellivora
BOCA Online Contest
- Maratona de ...에서 사용되도록 개발 된 프로그래밍 콘테스트를 지원
- https://github.com/cassiopc/boca/
Hack the Arch
- Ruby on Rails를 사용하여 구축 한 스코어링 서버
- https://github.com/mcpa-stlouis/hack-the-arch/
MITRE CTF Scoreboard
🤖 CTF 엔진 비교
엔진 | 특징 |
CTFd | admin 인터페이스에서 문제, 카테고리, 힌트, 플래그 생성 가능 점수 동적 채점 문제 잠금 해제 지원 사용자 지정 플래그 플러그인 서버 혹은 AWS-S3 에 호환하는 파일 업로드 브루트포스 공격으로부터의 보호 개인 혹은 팀 경기 진행(팀 구성 기능) 사용자로부터의 점수 숨김 특정 시간동안 점수 고정 점수 및 진행도 그래프 지원 마크다운 컨텐츠 관리 시스템 SMTP + Mailgun 이메일 지원(이메일 확인 지원, 패스워드를 잊은 경우의 지원) 자동 경기 시작 및 종료 팀 관리, 숨기기, 밴 처리 플러그인과 테마를 사용한 커스터마이징 CTF 데이터 가져오기 및 내보내기 지원 그 외… |
Mellivora | 스코어보드 제공 문제 힌트 팀 진행도 페이지 카테고리 및 문제 특정 시간동안 노출 상위 문제 해결에 대한 문제 노출 로컬 혹은 AWS-S3에 문제 파일 업로드 1면 뉴스 작성/편집 reCAPTCHA 지원 예외 탐지를 위한 내부 로그 가입 시 사용자 정의 암호 또는 자동 생성 암호 지원 사용자/이메일/IP 검색 기능 CTFTime과 호환하는 JSON 점수판 Cloudflare와 같은 캐싱 프록시 인식(optional x-forwarded-for trust) 그 외… |
BOCA Online Contest | 이식성, 동시성 제어, 다중 사이트 및 분산 콘테스트, 간단한 웹 인터페이스 |
Hack the Arch | 힌트 요청 시 포인트를 차감하는 선택적 동적 힌트 시스템 구현 힌트와 문제를 만들고 수정하기 위한 웹 인터페이스 구현 |
MITRE CTF Scoreboard | Ruby on Rails로 구축된 스코어보드 및 등록 애플리케이션 |
728x90
반응형