자유게시판

Loading

Null4U 프로젝트 SMCTF

Author
ㅇㅇ ㅇㅇ
Date
2026-01-26 21:42
Views
313
SMCH + CTF, https://github.com/nullforu/smctf

CTFD의 복잡한(?) 플러그인을 내장한(TODO) 자체적인 CTF 플랫폼
(특히 문제별 개인 인스턴스/VM <-- 사실상 이거땜에 자체적으로 만들어서 자급자족하려고 함)

- 백엔드는 Go + Gin + Bun(ORM), 프론트엔드는 Svelte 5.0 + TailwindCSS + Vite 번들러
- DB는 PostgreSQL(MySQL 대체 가능) + Redis (JWT Refresh + 캐싱) 사용
- 간편성을 최우선으로 생각해서 로컬에서 Terraform + Docker로 쉽게 프로비저닝 가능해두게 하는게 목표
- 안정성도 최우선으로 생각해서 (백엔드 한정) TDD(유닛 테스트), E2E/통합 테스트(testcontainers) 중점으로 개발

졸업하기전에 완성시켜두고 널포유에 종속시켜둘 예정, 유지보수는 후배님들이 알잘딱 해주길..

학과/학교 한정으로 생각하긴 했으나 만들다보니 괜찮은 듯 싶어서 오픈소스 프로젝트로서의 가치도 어느정도 있는 것 같음

겨울방학 때 대부분의 기능을 완성시켜두고 Codecov 유닛/통합 테스트 커버리지 70% 이상 목표로 (달성)
개학 이후 1~2주 정도 켜둔 뒤 버그 제보/기능 제안 받을 예정. 대회 기간엔 보안 상 프라이빗 레포지토리로 임시 전환 예정

깃허브 레포지토리는 협업 중심으로 이슈 + PR 적극 활용하고 있으니 관심이 있다면 https://github.com/nullforu/smctf?tab=contributing-ov-file 참조 바람

## Features

### Available/Stable features:

- AuthN/AuthZ (JWT), including registration keys management
- Challenge management (Jeopardy CTF style, See [`ctf_service.go`](./internal/service/ctf_service.go) for a list of categories.)
- Flag submission with rate limiting and HMAC verification
- Scoreboard and Timeline (Redis caching support)
- User profile with statistics (Some implementations are still WIP)

### Planned/Upcoming features:

Also, the following features are planned to be implemented. see [issues](https://github.com/nullforu/smctf/issues) for more details.

- User and Team/Group management
- Per challenge individual instance/VM provisioning support via AWS SDK (ECS Fargate or EC2 based)
- Dynamic scoring (ref: [CTFd - Dynamic Value](https://docs.ctfd.io/docs/custom-challenges/dynamic-value/))
- Challenge file upload/download support via AWS Presigned URL
- UI customization and detailed configuration options
- Multi language support (i18n) and RTL language support (for global service expansion)
- Systematized admin dashboard and log/monitoring system integration
- ... and more features to be added.

(https://github.com/nullforu/smctf?tab=readme-ov-file)
Total Reply 9

  • 2026-01-29 14:50

    컨트리뷰팅 시 아래와 같이 PR 남겨주길 바람.

    https://github.com/nullforu/smctf/pull/10

    PR 남기면 테스트 CI 실행되고 Codecov 결과도 알려주니 최소 커러비지 최소 70% 넘기도록, + PR 검토 되면 Squash Merge 후 브랜치 삭제함

    image-3.png


    • 2026-01-29 14:51

      .

      image-4.png


  • 2026-01-26 21:43

    Preview

    preview_1_challenges.png


    • 2026-01-26 21:43

      .

      preview_2_challenge.png


      • 2026-01-26 21:44

        .

        preview_3_scoreboard.png


        • 2026-01-26 21:44

          .

          preview_4_users.png


          • 2026-01-26 21:44

            .

            preview_5_users_profile.png


            • 2026-01-26 21:45

              .

              preview_6_profile.png


              • 2026-01-26 21:45

                .

                preview_7_admin_keys.png


Comments are closed.