Skip to content

MJSEC-MJU/MSG_CTF_WEB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

983 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ” MSG_CTF PROJECT

์ด ํ”„๋กœ์ ํŠธ๋Š” MSG_CTF(Capture The Flag) ๋Œ€ํšŒ๋ฅผ ์œ„ํ•œ ์›น ์‚ฌ์ดํŠธ๋กœ, CTFd๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์„ค์น˜ ๋ฐฉ๋ฒ•, ๊ธฐ์—ฌ์ž ์ •๋ณด, ๊ธฐ์ˆ  ์Šคํƒ, ํ˜‘์—… ๋ฐฉ์‹, ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„, ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜, ERD, ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ, ๊ทธ๋ฆฌ๊ณ  ํ™”๋ฉด ๊ตฌ์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Technology Stack

React Spring Boot MySQL Redis Docker Docker Compose GitHub Actions Flask Gunicorn NGINX Docker Hub


๋ชฉ์ฐจ

  1. ์„œ๋ฒ„ ์„ค์น˜ ๋ฐฉ๋ฒ•
  2. ๊ธฐ์—ฌ์ž ํ‘œ
  3. ํ˜‘์—… ๋ฐฉ์‹
  4. ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„
  5. ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜
  6. ERD
  7. ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ
  8. ํ™”๋ฉด ๊ตฌ์„ฑ

๐Ÿ“Œ ์„œ๋ฒ„ ์„ค์น˜ ๋ฐฉ๋ฒ•

์•„๋ž˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ €์žฅ์†Œ ๋ณต์ œ

ํ”„๋กœ์ ํŠธ๋Š” ๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ์—”๋“œ, ๋””์Šค์ฝ”๋“œ ๋ด‡์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.

# ๋ฐฑ์—”๋“œ ์ €์žฅ์†Œ ๋ณต์ œ
git clone https://github.com/MJSEC-MJU/MSG_CTF_BACK.git
cd backend

# ํ”„๋ก ํŠธ์—”๋“œ ์ €์žฅ์†Œ ๋ณต์ œ
git clone https://github.com/MJSEC-MJU/MSG_CTF_WEB.git
cd frontend

# ๋””์Šค์ฝ”๋“œ ๋ด‡ ์ €์žฅ์†Œ ๋ณต์ œ
git clone https://github.com/MJSEC-MJU/MSG_DISCORDBOT.git
cd discord-bot

๐Ÿ™Œ ๊ธฐ์—ฌ์ž ํ‘œ

Backend Team

Profile Role Expertise
jongcoding
jongcoding
PM/DevOps Admin API, Sys Arch
minsoo0506
minsoo0506
Maintainer Maintenance
ORI-MORI
ORI-MORI
Backend Ranking API
tember8003
tember8003
Backend User API
yunttai
yunttai
Backend Signature API
alivemarin
alivemarin
Backend LeaderBoard API

Frontend Team

Profile Role Expertise
MEspeaker
MEspeaker
Frontend Design & UI/UX
youminki
youminki
Frontend UI/UX
jenn2i
jenn2i
Frontend User API
hanwoooo
hanwoooo
Frontend UI/UX & Design

Discord Bot Team

Profile Bot
jongcoding
jongcoding
FIRST_bot
jiyoon77
jiyoon77
DJ_BOT
tember8003
tember8003
TICKET_bot
walnutpy
walnutpy
ROLE_bot

๐Ÿ”ฅ ํ˜‘์—… ๋ฐฉ์‹

ํ”Œ๋žซํผ ์‚ฌ์šฉ ๋ฐฉ์‹
๋งค์ฃผ ๊ธˆ์š”์ผ 2์‹œ ํšŒ์˜, ๋ผ์ด๋ธŒ ์ฝ”๋”ฉ
PR์„ ํ†ตํ•ด ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ฐ ํ…Œ์ŠคํŠธ ๊ณผ์ • ํ™•์ธ
์ปจ๋ฒค์…˜, API, ํšŒ์˜ ๊ธฐ๋ก ๋ฌธ์„œํ™”

๐Ÿ“† ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

  • 2024.12.28 ~ 2025.01.04 : ํŒ€ ๊ทœ์น™ ๋ฐ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜ ์˜๋…ผ, ๊ธฐ๋Šฅ ์ •์˜
  • 2025.01.04 ~ 2025.01.18 : API ๋ช…์„ธ์„œ ์ž‘์„ฑ, ERD ์„ค๊ณ„
  • 2025.01.18 ~ 2025.01.25 : ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ธํŒ…, ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • 2025.01.25 ~ 2025.02.01 : ๋ฌธ์ œ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • 2025.02.01 ~ 2025.02.08 : ๋ฌธ์ œ ์ „์ฒด ์กฐํšŒ, ๋ฌธ์ œ ์ƒ์„ธ ์กฐํšŒ, ๋ฌธ์ œ ์ œ์ถœ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • 2025.02.08 ~ 2025.02.15 : ์œ ์ € ํ”„๋กœํ•„ ์กฐํšŒ, ๋ฆฌ๋”๋ณด๋“œ(๋žญํ‚น & ๊ทธ๋ž˜ํ”„) ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • 2025.02.15 ~ 2025.02.22 : ๋””์Šค์ฝ”๋“œ๋ด‡ ๊ฐœ๋ฐœ ๋ฐ ์—ฐ๋™
  • 2025.02.22 ~ 2025.03.01 : ๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ(์‚ฌ์šฉ์ž/๋ฌธ์ œ ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ) ๊ตฌํ˜„
  • 2025.03.01 ~ 2025.03.08 : ๋ฒ„๊ทธ ์ˆ˜์ •
  • 2025.03.08 ~ 2025.07.01 : ํ…Œ์ŠคํŠธ ๋ฐ ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง
  • 2025.07.01 ~ 2025.07.31 : CTF v2.0 ๊ธฐํš
  • 2025.08.01 ~ 2025.08.15 : ๋งˆ์ผ๋ฆฌ์ง€ ๊ธฐ๋ฐ˜ ๊ฒฐ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • 2025.08.15 ~ 2025.09.31 : ๊ฐœ์ธ ๋‹จ์œ„์—์„œ ํŒ€ ๋‹จ์œ„๋กœ ๋กœ์ง ๋ณ€๊ฒฝ (๋Œ€ํšŒ ์ •์ฑ… ๋ณ€๊ฒฝ)
  • 2025.10.01 ~ 2025.10.08 : ์‹œ๊ทธ๋‹ˆ์ณ ๋ฌธ์ œ ์กฐํšŒ/์ƒ์„ฑ/์‚ญ์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • 2025.10.08 ~ 2025.10.15 : ๋ฆฌ๋”๋ณด๋“œ ์กฐํšŒ ๊ธฐ๋Šฅ ์ˆ˜์ • (ํŒ€ ๋‹จ์œ„)
  • 2025.10.15 ~ 2025.11.09 : ํ…Œ์ŠคํŠธ ๋ฐ ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง

๐Ÿ› ๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

MJSECCTF drawio


๐Ÿ“ ERD

msg_ctf_erd

โš™๏ธ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ

โญ๏ธ USER

  • ํšŒ์›๊ฐ€์ž… / ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ
  • ์œ ์ € ํ”„๋กœํ•„ ์กฐํšŒ ๊ธฐ๋Šฅ (ํš๋“ํ•œ ์ ์ˆ˜, ๋žญํฌ, ํ‘ผ ๋ฌธ์ œ ์กฐํšŒ)
  • ์ด๋ฉ”์ผ ์ธ์ฆ ๊ธฐ๋Šฅ (์ธ์ฆ ์ฝ”๋“œ ๋ฐœ์†ก ๋ฐ ๊ฒ€์ฆ)
  • ID ๋ฐ ์ด๋ฉ”์ผ ์ค‘๋ณต ํ™•์ธ
  • ๊ฐœ์ธ ๋ฌธ์ œ ํ’€์ด ํžˆ์Šคํ† ๋ฆฌ ์กฐํšŒ

โญ๏ธ TEAM

  • ํŒ€ ํ”„๋กœํ•„ ์กฐํšŒ (ํŒ€์› ์ •๋ณด, ํŒ€ ์ ์ˆ˜, ํŒ€ ์ˆœ์œ„)
  • ํŒ€ ๋ฌธ์ œ ํ’€์ด ํžˆ์Šคํ† ๋ฆฌ ์กฐํšŒ

โญ๏ธ CHALLENGE

  • ๋ฌธ์ œ ๋ชฉ๋ก ์ „์ฒด ์กฐํšŒ (ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ง€์›)
  • ๋ฌธ์ œ ์ƒ์„ธ ์กฐํšŒ (๋ฌธ์ œ ์ œ๋ชฉ, ์„ค๋ช…, ๋งํฌ)
  • ๋ฌธ์ œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
  • ๋ฌธ์ œ ์ œ์ถœ (๋‹ค์ด๋‚˜๋ฏน ์Šค์ฝ”์–ด๋ง, ๋””์Šค์ฝ”๋“œ ๋ด‡ ์—ฐ๋™)

โญ๏ธ SIGNATURE (์‹œ๊ทธ๋‹ˆ์ฒ˜ ๊ฒ€์ฆ ์‹œ์Šคํ…œ)

  • ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์ฝ”๋“œ ๊ฒ€์ฆ ๋ฐ ๋ฌธ์ œ ์–ธ๋ฝ
  • ํŒ€๋ณ„ ์–ธ๋ฝ ์ƒํƒœ ์กฐํšŒ
  • ์–ธ๋ฝ๋œ ์ฑŒ๋ฆฐ์ง€ ๋ชฉ๋ก ์กฐํšŒ

โญ๏ธ LEADERBOARD

  • ํŒ€ ๋‹จ์œ„ ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋”๋ณด๋“œ (SSE ์ŠคํŠธ๋ฆฌ๋ฐ)
  • ํŒ€ ๋‹จ์œ„ ์ ์ˆ˜ ๊ทธ๋ž˜ํ”„ (SSE ์ŠคํŠธ๋ฆฌ๋ฐ)

โญ๏ธ PAYMENT

  • QR ๊ธฐ๋ฐ˜ ๋งˆ์ผ๋ฆฌ์ง€ ๊ฒฐ์ œ ์‹œ์Šคํ…œ
  • ๊ฒฐ์ œ ํ† ํฐ ์ƒ์„ฑ
  • ๋งˆ์ผ๋ฆฌ์ง€ ์ฒดํฌ์•„์›ƒ ์ฒ˜๋ฆฌ
  • ํŒ€๋ณ„ ๊ฒฐ์ œ ํžˆ์Šคํ† ๋ฆฌ ์กฐํšŒ

โญ๏ธ ADMIN - ํšŒ์› ๊ด€๋ฆฌ

  • ํšŒ์› ์กฐํšŒ / ์ถ”๊ฐ€ / ์ˆ˜์ • / ์‚ญ์ œ
  • ์กฐ๊ธฐ ํ‡ด์†Œ ์ƒํƒœ ๋ณ€๊ฒฝ
  • ์ „์ฒด ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ

โญ๏ธ ADMIN - ๋ฌธ์ œ ๊ด€๋ฆฌ

  • ๋ฌธ์ œ ์กฐํšŒ / ์ƒ์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ (ํŒŒ์ผ ์ฒจ๋ถ€ ์ง€์›)
  • ๋ฌธ์ œ ์š”์•ฝ ์ •๋ณด ์กฐํšŒ
  • ์ „์ฒด ์ œ์ถœ ๊ธฐ๋ก ์กฐํšŒ
  • ๋ฌธ์ œ๋ณ„ ์ œ์ถœ ๊ธฐ๋ก ์กฐํšŒ
  • ํŠน์ • ์‚ฌ์šฉ์ž ์ œ์ถœ ๊ธฐ๋ก ์ฒ ํšŒ
  • ์‚ฌ์šฉ์ž๋ณ„ ์ „์ฒด ์ œ์ถœ ๊ธฐ๋ก ์‚ญ์ œ

โญ๏ธ ADMIN - ํŒ€ ๊ด€๋ฆฌ

  • ํŒ€ ์ƒ์„ฑ / ์‚ญ์ œ
  • ํŒ€์› ์ถ”๊ฐ€ / ์‚ญ์ œ
  • ํŒ€ ๋งˆ์ผ๋ฆฌ์ง€ ๋ถ€์—ฌ
  • ์ „์ฒด ํŒ€ ๋ชฉ๋ก ์กฐํšŒ

โญ๏ธ ADMIN - ๊ฒฐ์ œ ๊ด€๋ฆฌ

  • ์ „์ฒด ๊ฒฐ์ œ ํžˆ์Šคํ† ๋ฆฌ ์กฐํšŒ
  • ๊ฒฐ์ œ ์ฒ ํšŒ ๋ฐ ๋งˆ์ผ๋ฆฌ์ง€ ํ™˜๋ถˆ

โญ๏ธ ADMIN - ์‹œ๊ทธ๋‹ˆ์ฒ˜ ๊ด€๋ฆฌ

  • ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์ฝ”๋“œ ์ผ๊ด„ ์—…์„œํŠธ (JSON)
  • ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์ฝ”๋“œ CSV ์ž„ํฌํŠธ/์ต์ŠคํฌํŠธ
  • ์ฝ”๋“œ ํ’€ ์กฐํšŒ ๋ฐ ๋žœ๋ค ์ฝ”๋“œ ์ƒ์„ฑ
  • ์ฝ”๋“œ ์žฌ๋ฐฐ์ • ๋ฐ ์†Œ๋น„์ƒํƒœ ์ดˆ๊ธฐํ™”
  • ๋‹จ์ผ/์ผ๊ด„ ์ฝ”๋“œ ์‚ญ์ œ
  • ๊ฐ•์ œ ์–ธ๋ฝ ์ฒ˜๋ฆฌ

โญ๏ธ ADMIN - IP ๊ด€๋ฆฌ

  • IP ์ฐจ๋‹จ / ์ฐจ๋‹จ ํ•ด์ œ / ์ฐจ๋‹จ ์—ฐ์žฅ
  • ์ฐจ๋‹จ๋œ IP ๋ชฉ๋ก ์กฐํšŒ
  • IP ํ™œ๋™ ๋กœ๊ทธ ์กฐํšŒ
  • ์˜์‹ฌ์Šค๋Ÿฌ์šด IP ๋ชฉ๋ก ์ง‘๊ณ„
  • IP ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ ๊ด€๋ฆฌ
  • IP ๋ฐด ์บ์‹œ ์žฌ๊ตฌ์ถ•

โญ๏ธ ADMIN - ๊ธฐํƒ€

  • ์ ์ˆ˜ ์žฌ๊ณ„์‚ฐ
  • ๋Œ€ํšŒ ์‹œ์ž‘/์ข…๋ฃŒ ์‹œ๊ฐ„ ์„ค์ •
  • ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๊ฒ€์ฆ

โญ๏ธ TIME

  • ์„œ๋ฒ„ ์‹œ๊ฐ„ ์กฐํšŒ
  • ๋Œ€ํšŒ ์‹œ๊ฐ„ ์กฐํšŒ (์‹œ์ž‘/์ข…๋ฃŒ ์‹œ๊ฐ„)

โญ๏ธ TOKEN

  • Access Token / Refresh Token ์žฌ๋ฐœ๊ธ‰

๐Ÿ‘พ๏ธ DISCORD BOT

  • First-Blood BOT : ์ฑ„๋„ ๋ฉค๋ฒ„์—๊ฒŒ ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•œ ์‚ฌ๋žŒ ์ •๋ณด ์ „๋‹ฌ
  • Role BOT : ์ฑ„๋„ ๋ฉค๋ฒ„์—๊ฒŒ ๊ณต์ง€ ์‚ฌํ•ญ, ๋Œ€ํšŒ ์‹œ์ž‘ ์ •๋ณด, ์šฐ์Šน์ž ์ •๋ณด ์ „๋‹ฌ
  • Ticket BOT : ํ‹ฐ์ผ“ ์ƒ์„ฑ (๊ด€๋ฆฌ์ž์™€ ๊ฐœ์ธ ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ), ํ‹ฐ์ผ“ ๋ฐฉ (ํ‹ฐ์ผ“ ๋ฐฉ ๋‚ด์—์„œ ๋Œ€ํ™”ํ•œ ๋กœ๊ทธ txt ํ˜•ํƒœ๋กœ ์ €์žฅ, ๋Œ€ํ™” ์ข…๋ฃŒ) ๊ธฐ๋Šฅ
  • DJ BOT : ๋ชจ๋“  ๋ฉค๋ฒ„ ์Œ์†Œ๊ฑฐ / ์Œ์†Œ๊ฑฐ ํ•ด์ œ, ๋…ธ๋ž˜ ์ถ”๊ฐ€ / ์žฌ์ƒ / ๊ฑด๋„ˆ๋›ฐ๊ธฐ / ์ค‘๋‹จ, ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ ์กฐํšŒ ๊ธฐ๋Šฅ

๐Ÿ–ฅ๏ธ ํ™”๋ฉด ๊ตฌ์„ฑ

๋ฉ”์ธ ํŽ˜์ด์ง€ 1

๋ฉ”์ธ ํŽ˜์ด์ง€ 1
๋ฉ”์ธ ํŽ˜์ด์ง€ 2

๋ฉ”์ธ ํŽ˜์ด์ง€ 2
๋ฉ”์ธ ํŽ˜์ด์ง€ 3

๋ฉ”์ธ ํŽ˜์ด์ง€ 3
๋ฉ”์ธ ํŽ˜์ด์ง€ 4

๋ฉ”์ธ ํŽ˜์ด์ง€ 4
๋ฉ”์ธ ํŽ˜์ด์ง€ 5

๋ฉ”์ธ ํŽ˜์ด์ง€ 5
๋กœ๊ทธ์ธ ํŽ˜์ด์ง€

๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
๋ฌธ์ œ ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€

๋ฌธ์ œ ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€
๋ฌธ์ œ ์ƒ์„ธ ํŽ˜์ด์ง€

๋ฌธ์ œ ์ƒ์„ธ ํŽ˜์ด์ง€
๋ฆฌ๋”๋ณด๋“œ ํŽ˜์ด์ง€(์ƒ๋‹จ)

๋ฆฌ๋”๋ณด๋“œ ํŽ˜์ด์ง€ ์ƒ๋‹จ
๋ฆฌ๋”๋ณด๋“œ ํŽ˜์ด์ง€(ํ•˜๋‹จ)

๋ฆฌ๋”๋ณด๋“œ ํŽ˜์ด์ง€ ํ•˜๋‹จ
๋žญํ‚น ํŽ˜์ด์ง€

๋žญํ‚น ํŽ˜์ด์ง€
๋งˆ์ด ํŽ˜์ด์ง€

๋งˆ์ด ํŽ˜์ด์ง€
ํƒ€์ด๋จธ ํŽ˜์ด์ง€

ํƒ€์ด๋จธ ํŽ˜์ด์ง€

๐Ÿค– DISCORD BOT

๐ŸŽŸ๏ธ Ticket BOT ๐ŸŽญ Role BOT
๐Ÿฉธ First-Blood BOT ๐ŸŽต DJ BOT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages