업데이트로 돌아가기
New releaseAug 19, 2026

CTFd v3.8.7

필요할 때 사용하는 CTF

공유

CTFd MySQL CI Linting MajorLeagueCyber Discourse Documentation Status

CTFd란 무엇인가?

CTFd는 사용 편의성과 사용자 정의 가능성에 중점을 둔 Capture The Flag 프레임워크입니다. CTF를 실행하는 데 필요한 모든 것이 포함되어 있으며 플러그인과 테마로 쉽게 사용자 정의할 수 있습니다.

CTFd는 캔에 담긴 CTF입니다.

기능

  • 관리자 인터페이스에서 자신만의 챌린지, 카테고리, 힌트 및 플래그 생성
    • 동적 점수(Dynamic Scoring) 챌린지
    • 잠금 해제 가능한 챌린지 지원
    • 나만의 맞춤 챌린지를 만들 수 있는 챌린지 플러그인 아키텍처
    • 정적 및 정규식 기반 플래그
      • 맞춤 플래그 플러그인
    • 잠금 해제 가능한 힌트
    • 서버 또는 Amazon S3 호환 백엔드에 파일 업로드
    • 챌린지 시도 횟수 제한 및 챌린지 숨기기
    • 자동 무차별 대입(bruteforce) 공격 방지
  • 개인 및 팀 기반 대회
    • 사용자가 혼자 플레이하거나 팀을 구성하여 함께 플레이
  • 자동 동점 해결 기능이 포함된 점수판
    • 점수를 공개로부터 숨기기
    • 특정 시간에 점수 동결
  • 상위 10개 팀을 비교하는 Scoregraphs 및 팀 진행 상황 그래프
  • Markdown 콘텐츠 관리 시스템
  • SMTP + Mailgun 이메일 지원
    • 이메일 확인 지원
    • 비밀번호 찾기 지원
  • 대회 자동 시작 및 종료
  • 팀 관리, 숨기기 및 차단
  • 플러그인테마 인터페이스로 모든 것을 맞춤 설정
  • 보관을 위한 CTF 데이터 가져오기 및 내보내기
  • 그리고 훨씬 더 많은 기능...

설치

시작하는 가장 쉬운 방법은 호스팅형 CTFd 인스턴스를 사용하는 것입니다.

자체 호스팅 설치의 경우 CTFd 문서에서 배포 옵션시작하기 가이드를 확인하세요.

다음은 CTFd를 자체 호스팅하기 위한 몇 가지 옵션 요약입니다.

Docker

소스 저장소에서 다음 명령을 사용하여 Docker Compose를 실행할 수 있습니다.

docker compose up

자동 생성된 Docker 이미지를 직접 사용하려면:

docker run -p 8000:8000 -it ctfd/ctfd

개발

  1. uv를 설치하고 uv sync를 실행하여 의존성이 설치된 virtualenv를 생성하세요.
    • 기존 환경에는 uv.lock에서 생성된 pip install -r requirements.txt로 설치할 수도 있습니다.
  2. CTFd/config.ini를 원하는 대로 수정하세요.
  3. 터미널에서 uv run serve.py 또는 uv run flask run을 사용하여 디버그 모드로 진입하세요.

라이브 데모

https://demo.ctfd.io/

지원

기본 지원을 받으려면 MajorLeagueCyber 커뮤니티에 가입하세요. MajorLeagueCyber Discourse

상업적 지원을 선호하거나 특별한 프로젝트가 있다면 언제든지 문의하기를 이용하세요.

관리형 호스팅

CTFd를 사용하고 싶지만 인프라 관리를 원하지 않나요? 관리형 CTFd 배포는 CTFd 웹사이트에서 확인하세요.

MajorLeagueCyber

CTFd는 MajorLeagueCyber와 긴밀하게 통합되어 있습니다. MajorLeagueCyber(MLC)는 이벤트 일정 관리, 팀 추적, 이벤트에 대한 단일 로그온(single sign on)을 제공하는 CTF 통계 추적기입니다.

MajorLeagueCyber에 CTF 이벤트를 등록하면 사용자가 자동으로 로그인하고 개인 및 팀 점수를 추적하며 writeup을 제출하고 중요한 이벤트에 대한 알림을 받을 수 있습니다.

MajorLeagueCyber와 통합하려면 계정을 등록하고, 이벤트를 생성한 다음, CTFd/config.py의 해당 부분이나 관리자 패널에 클라이언트 ID와 클라이언트 시크릿을 설정하기만 하면 됩니다.

OAUTH_CLIENT_ID = None
OAUTH_CLIENT_SECRET = None

크레딧

카테고리