์ด ํ๋ก์ ํธ๋ MSG_CTF(Capture The Flag) ๋ํ๋ฅผ ์ํ ์น ์ฌ์ดํธ๋ก, CTFd๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ๊ฐ๋ฐ๋์์ต๋๋ค.
์ด ๋ฌธ์๋ ํ๋ก์ ํธ์ ์ค์น ๋ฐฉ๋ฒ, ๊ธฐ์ฌ์ ์ ๋ณด, ๊ธฐ์ ์คํ, ํ์
๋ฐฉ์, ๊ฐ๋ฐ ๊ธฐ๊ฐ, ์์คํ
์ํคํ
์ฒ, ERD, ๊ตฌํ๋ ๊ธฐ๋ฅ, ๊ทธ๋ฆฌ๊ณ ํ๋ฉด ๊ตฌ์ฑ์ ์ค๋ช
ํฉ๋๋ค.
์๋ฒ ์ค์น ๋ฐฉ๋ฒ
๊ธฐ์ฌ์ ํ
ํ์
๋ฐฉ์
๊ฐ๋ฐ ๊ธฐ๊ฐ
์์คํ
์ํคํ
์ฒ
ERD
๊ตฌํ๋ ๊ธฐ๋ฅ
ํ๋ฉด ๊ตฌ์ฑ
๐ ์๋ฒ ์ค์น ๋ฐฉ๋ฒ
์๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ ์๋ฒ๋ฅผ ์ค์นํ๊ณ ์คํํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ๋ ๋ฐฑ์๋, ํ๋ก ํธ์๋, ๋์ค์ฝ๋ ๋ด์ผ๋ก ๋๋์ด์ ธ ์์ต๋๋ค. ๊ฐ ์ ์ฅ์๋ฅผ ๋ณต์ ํฉ๋๋ค.
# ๋ฐฑ์๋ ์ ์ฅ์ ๋ณต์
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
ํ๋ซํผ
์ฌ์ฉ ๋ฐฉ์
๋งค์ฃผ ๊ธ์์ผ 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 : ํ
์คํธ ๋ฐ ์ฝ๋ ๋ฆฌํํ ๋ง
๐ ๏ธ ์์คํ
์ํคํ
์ฒ
ํ์๊ฐ์
/ ๋ก๊ทธ์ธ / ๋ก๊ทธ์์ ๊ธฐ๋ฅ
์ ์ ํ๋กํ ์กฐํ ๊ธฐ๋ฅ (ํ๋ํ ์ ์, ๋ญํฌ, ํผ ๋ฌธ์ ์กฐํ)
์ด๋ฉ์ผ ์ธ์ฆ ๊ธฐ๋ฅ (์ธ์ฆ ์ฝ๋ ๋ฐ์ก ๋ฐ ๊ฒ์ฆ)
ID ๋ฐ ์ด๋ฉ์ผ ์ค๋ณต ํ์ธ
๊ฐ์ธ ๋ฌธ์ ํ์ด ํ์คํ ๋ฆฌ ์กฐํ
ํ ํ๋กํ ์กฐํ (ํ์ ์ ๋ณด, ํ ์ ์, ํ ์์)
ํ ๋ฌธ์ ํ์ด ํ์คํ ๋ฆฌ ์กฐํ
๋ฌธ์ ๋ชฉ๋ก ์ ์ฒด ์กฐํ (ํ์ด์ง๋ค์ด์
์ง์)
๋ฌธ์ ์์ธ ์กฐํ (๋ฌธ์ ์ ๋ชฉ, ์ค๋ช
, ๋งํฌ)
๋ฌธ์ ํ์ผ ๋ค์ด๋ก๋
๋ฌธ์ ์ ์ถ (๋ค์ด๋๋ฏน ์ค์ฝ์ด๋ง, ๋์ค์ฝ๋ ๋ด ์ฐ๋)
โญ๏ธ SIGNATURE (์๊ทธ๋์ฒ ๊ฒ์ฆ ์์คํ
)
์๊ทธ๋์ฒ ์ฝ๋ ๊ฒ์ฆ ๋ฐ ๋ฌธ์ ์ธ๋ฝ
ํ๋ณ ์ธ๋ฝ ์ํ ์กฐํ
์ธ๋ฝ๋ ์ฑ๋ฆฐ์ง ๋ชฉ๋ก ์กฐํ
ํ ๋จ์ ์ค์๊ฐ ๋ฆฌ๋๋ณด๋ (SSE ์คํธ๋ฆฌ๋ฐ)
ํ ๋จ์ ์ ์ ๊ทธ๋ํ (SSE ์คํธ๋ฆฌ๋ฐ)
QR ๊ธฐ๋ฐ ๋ง์ผ๋ฆฌ์ง ๊ฒฐ์ ์์คํ
๊ฒฐ์ ํ ํฐ ์์ฑ
๋ง์ผ๋ฆฌ์ง ์ฒดํฌ์์ ์ฒ๋ฆฌ
ํ๋ณ ๊ฒฐ์ ํ์คํ ๋ฆฌ ์กฐํ
โญ๏ธ ADMIN - ํ์ ๊ด๋ฆฌ
ํ์ ์กฐํ / ์ถ๊ฐ / ์์ / ์ญ์
์กฐ๊ธฐ ํด์ ์ํ ๋ณ๊ฒฝ
์ ์ฒด ํ์ ๋ชฉ๋ก ์กฐํ
โญ๏ธ ADMIN - ๋ฌธ์ ๊ด๋ฆฌ
๋ฌธ์ ์กฐํ / ์์ฑ / ์์ / ์ญ์ (ํ์ผ ์ฒจ๋ถ ์ง์)
๋ฌธ์ ์์ฝ ์ ๋ณด ์กฐํ
์ ์ฒด ์ ์ถ ๊ธฐ๋ก ์กฐํ
๋ฌธ์ ๋ณ ์ ์ถ ๊ธฐ๋ก ์กฐํ
ํน์ ์ฌ์ฉ์ ์ ์ถ ๊ธฐ๋ก ์ฒ ํ
์ฌ์ฉ์๋ณ ์ ์ฒด ์ ์ถ ๊ธฐ๋ก ์ญ์
โญ๏ธ ADMIN - ํ ๊ด๋ฆฌ
ํ ์์ฑ / ์ญ์
ํ์ ์ถ๊ฐ / ์ญ์
ํ ๋ง์ผ๋ฆฌ์ง ๋ถ์ฌ
์ ์ฒด ํ ๋ชฉ๋ก ์กฐํ
โญ๏ธ ADMIN - ๊ฒฐ์ ๊ด๋ฆฌ
์ ์ฒด ๊ฒฐ์ ํ์คํ ๋ฆฌ ์กฐํ
๊ฒฐ์ ์ฒ ํ ๋ฐ ๋ง์ผ๋ฆฌ์ง ํ๋ถ
โญ๏ธ ADMIN - ์๊ทธ๋์ฒ ๊ด๋ฆฌ
์๊ทธ๋์ฒ ์ฝ๋ ์ผ๊ด ์
์ํธ (JSON)
์๊ทธ๋์ฒ ์ฝ๋ CSV ์ํฌํธ/์ต์คํฌํธ
์ฝ๋ ํ ์กฐํ ๋ฐ ๋๋ค ์ฝ๋ ์์ฑ
์ฝ๋ ์ฌ๋ฐฐ์ ๋ฐ ์๋น์ํ ์ด๊ธฐํ
๋จ์ผ/์ผ๊ด ์ฝ๋ ์ญ์
๊ฐ์ ์ธ๋ฝ ์ฒ๋ฆฌ
IP ์ฐจ๋จ / ์ฐจ๋จ ํด์ / ์ฐจ๋จ ์ฐ์ฅ
์ฐจ๋จ๋ IP ๋ชฉ๋ก ์กฐํ
IP ํ๋ ๋ก๊ทธ ์กฐํ
์์ฌ์ค๋ฌ์ด IP ๋ชฉ๋ก ์ง๊ณ
IP ํ์ดํธ๋ฆฌ์คํธ ๊ด๋ฆฌ
IP ๋ฐด ์บ์ ์ฌ๊ตฌ์ถ
์ ์ ์ฌ๊ณ์ฐ
๋ํ ์์/์ข
๋ฃ ์๊ฐ ์ค์
๊ด๋ฆฌ์ ๊ถํ ๊ฒ์ฆ
์๋ฒ ์๊ฐ ์กฐํ
๋ํ ์๊ฐ ์กฐํ (์์/์ข
๋ฃ ์๊ฐ)
Access Token / Refresh Token ์ฌ๋ฐ๊ธ
First-Blood BOT : ์ฑ๋ ๋ฉค๋ฒ์๊ฒ ์ฒ์ ๋ฌธ์ ๋ฅผ ํ์ดํ ์ฌ๋ ์ ๋ณด ์ ๋ฌ
Role BOT : ์ฑ๋ ๋ฉค๋ฒ์๊ฒ ๊ณต์ง ์ฌํญ, ๋ํ ์์ ์ ๋ณด, ์ฐ์น์ ์ ๋ณด ์ ๋ฌ
Ticket BOT : ํฐ์ผ ์์ฑ (๊ด๋ฆฌ์์ ๊ฐ์ธ ์ฑํ
๋ฐฉ ์์ฑ), ํฐ์ผ ๋ฐฉ (ํฐ์ผ ๋ฐฉ ๋ด์์ ๋ํํ ๋ก๊ทธ txt ํํ๋ก ์ ์ฅ, ๋ํ ์ข
๋ฃ) ๊ธฐ๋ฅ
DJ BOT : ๋ชจ๋ ๋ฉค๋ฒ ์์๊ฑฐ / ์์๊ฑฐ ํด์ , ๋
ธ๋ ์ถ๊ฐ / ์ฌ์ / ๊ฑด๋๋ฐ๊ธฐ / ์ค๋จ, ํ๋ ์ด๋ฆฌ์คํธ ์กฐํ ๊ธฐ๋ฅ
๋ฉ์ธ ํ์ด์ง 1
๋ฉ์ธ ํ์ด์ง 2
๋ฉ์ธ ํ์ด์ง 3
๋ฉ์ธ ํ์ด์ง 4
๋ฉ์ธ ํ์ด์ง 5
๋ก๊ทธ์ธ ํ์ด์ง
๋ฌธ์ ๋ฆฌ์คํธ ํ์ด์ง
๋ฌธ์ ์์ธ ํ์ด์ง
๋ฆฌ๋๋ณด๋ ํ์ด์ง(์๋จ)
๋ฆฌ๋๋ณด๋ ํ์ด์ง(ํ๋จ)
๋ญํน ํ์ด์ง
๋ง์ด ํ์ด์ง
ํ์ด๋จธ ํ์ด์ง
๐๏ธ Ticket BOT
๐ญ Role BOT
๐ฉธ First-Blood BOT
๐ต DJ BOT