글
← 전체 글CTF / CTF 디스코드 구축

CTFd 문제 자동 등록

개요

해당 기능은 CTFd를 사용하는 문제 사이트를 대상으로 문제 인식부터 채널 등록 등을 자동으로 수행하기 위해서 구현했다.

CTFd 인증 방식

비로그인 방식

여러 가지가 존재하는데 가장 대표적인 것은 비로그인 방식임 로그인 안해도 바로 ctfd 접속해서 문제 해결 가능

API Token

로그인한 사용자가 API Token 을 발급받아서 요청마다 사용하는 방식임

Settings → Access Tokens → Generate 으로 생성 가능하고 이거를 Discord 에 입력해서 사용 가능함

image

세션 쿠키가 발급되면 해당 쿠키를 요청에 포함해서 접근하는 방식

구현

자동 문제 감지 및 채널 등록

image-2

다음과 같이 연동 설정을 클릭하면 어떤 인증 방식을 사용할지 정할 수 있고

image-3

각 용도에 맞게 URL 과 토큰을 넣으면 된다. 이후에 지금 동기화를 누르면 다음과 같이 자동으로 문제가 불러와진다. 테스트 사이트는 https://demo.ctfd.io/ 공식 데모 사이트로 진행했다.

image-4

image-5