[ 2025 COSS ์•„์ฃผ๋Œ€ CTF - ๋ณธ์„ ] - Write Up & ํ›„๊ธฐ

2025. 7. 25. 23:48ยทCTF

2025. 07. 19 ํ† ์š”์ผ ์•„์ฃผ๋Œ€ํ•™๊ต์—์„œ ์ง„ํ–‰๋œ COSS CTF ๋ณธ์„ ์— ์ฐธ์—ฌํ•˜์˜€๋‹ค

๋™์ผํ•˜๊ฒŒ ์ถœ์ „ํ–ˆ๊ณ , ์ตœ์ข… ๊ฒฐ๊ณผ 4์œ„๋กœ ๋งˆ๋ฌด๋ฆฌ ํ–ˆ๋‹ค

์†”์งํžˆ ๋ณธ์„ ์„ ๋ชฉํ‘œ๋กœ ๋‚˜๊ฐ„๊ฑฐ์˜€๊ณ , ์ˆ˜์ƒ์€ ์ƒ๊ฐ๋„ ๋ชปํ–ˆ๋Š”๋ฐ, ์ˆ˜์ƒํ•˜๋‹ˆ๊น ์–ผ๋–จ๋–จํ•˜๊ณ  ๋„ˆ๋ฌด ์ข‹๋‹ค

์ฒซ ๋ณธ์„ ์— ์ฒซ ์ˆ˜์ƒ์ธ ๋งŒํผ ๋Œ€ํšŒ ํ•˜๋ฃจ์˜ ์ผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค

08:10 - ๊ธฐ์ƒ

์›๋ž˜ 8์‹œ์— ์ผ์–ด๋‚˜๋ ค๋‹ค๊ฐ€ ์กฐ๊ธˆ ๋Šฆ์—ˆ๋‹ค

์ฒœ๋‘ฅ ๋ฒˆ๊ฐœ๊ฐ€ ์ณ์„œ ๋Šฆ๊ฒŒ ์ž ๋“ค์—ˆ๋”๋‹ˆ, ์•Œ๋žŒ์„ ๋ชป ๋“ค์—ˆ๋‹ค

๊ทธ๋ž˜๋„ ๋Šฆ์ง€๋Š” ์•Š์•˜๋‹ค

 

08:30 ~ 09:30 - ์ด๋™

๋Œ€ํšŒ์žฅ๊นŒ์ง€๋Š” 40๋ถ„ ์ •๋„ ๊ฑธ๋ ธ๋‹ค

์”ป๊ณ  ๋Œ€์ถฉ ๋นต ๋จน๊ณ  ๋ฐ”๋กœ ์ถœ๋ฐœํ•ด์„œ ํƒ€์ดํŠธํ•˜๊ฒŒ ๋„์ฐฉํ–ˆ๋‹ค

401ํ˜ธ์˜€๋‚˜? ๊ฑฐ๊ธฐ์„œ ์ธ์› ์ฒดํฌ๋ฅผ ํ–ˆ๋Š”๋ฐ, ์•„๋งˆ ๋‚ด๊ฐ€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์œผ๋กœ ์˜จ ๊ฒƒ ๊ฐ™์•˜๋‹ค

 

09:30 ~ 09:50 - ๋Œ€ํšŒ์žฅ ์ด๋™ ๋ฐ ์ค€๋น„

์ฐ ๋Œ€ํšŒ์žฅ์€ 1์ธต์— ์žˆ์—ˆ๋‹ค

์†”์งํžˆ ๋น„์˜ค๊ณ  ๊ทธ๋ž˜์„œ ๊ทธ๋žฌ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ, ๊ฑด๋ฌผ์ด ์ค‘ํ›„ํ•œ ๋А๋‚Œ์ด ์žˆ์—ˆ๋‹ค

๊ทผ๋ฐ ๋Œ€ํšŒ์žฅ์€ ์—„์ฒญ ๊น”๋”ํ•˜๊ณ  ์„ธ๋ จ๋˜์–ด ์žˆ์—ˆ๋‹ค

๊ทธ๋ฆฌ๊ณ  ์ธํ…Œ๋ฆฌ์–ด๊ฐ€ ์ด๋ปค๋‹ค

๋งจ ์•ž์ž๋ฆฌ

๊ฐ€๋‹ˆ๊น ํ‹ฐ์…”์ธ ๋„ ๋‚˜๋ˆ ์ฃผ์…จ๋‹ค

๋˜ ๋‹ค๊ณผ๋„ ์žˆ์—ˆ๋Š”๋ฐ, ๊ฐ„์‹๋“ค์ด ์—„์ฒญ ๋งŽ์•˜๋‹ค

์ง„์งœ ์ข‹์•˜๋‹ค

๋Œ€ํšŒ ํŽ˜์ด์ง€ ๋กœ๊ทธ์ธ ํ•˜๊ณ , ์„ค๋ช… ๊ฐ„๋žตํ•˜๊ฒŒ ๋“ฃ๊ณ , ์™€์ดํŒŒ์ด ์žก๊ณ , ๋”ฑ ์„ธํŒ…ํ•ด๋‘๋‹ˆ ์‹œ์ž‘ํ•  ์‹œ๊ฐ„์ด ๋˜์—ˆ๋‹ค

 

10:00 ~ 15:30 - ๋ณธ์„  ๋Œ€ํšŒ

์‹œ์ž‘ํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ misc๋กœ ๋‹ฌ๋ ค๊ฐ”๋‹ค

mic check ๊ฐ™์€๊ฑฐ ์žˆ์„ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์—†์—ˆ๊ณ , give me flag๋ฅผ ๊ทธ๋ฆฌ๋ฉด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฃผ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค

์™€์šฐ! ๋ณ„๊ฑฐ ์•„๋‹Œ ๋ฌธ์  ๋ฐ ํผ๋ธ”์ด๋‹ค

๊ฝค๋‚˜ ์–ด๋ ค์›Œ์„œ ์ž~์•Œ ๊ทธ๋ ค์•ผ ํ•œ๋‹ค

 

๊ทธ๋ฆฌ๊ณ  ํ’€ ๋ฌธ์ œ๋ฅผ ๋ณด์•˜๋‹ค

ํŒ€์›์ค‘ ํ•œ ๋ช…์ด ํฌ๋ฆฝํ† ๋ฅผ ๋งก์•„์„œ, ํฌ๋ฆฝํ†  ํ•œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋™์•ˆ์— ๋‚˜๋„ ๋‹ค๋ฅธ ํฌ๋ฆฝํ†  ๋ฌธ์ œ๋ฅผ ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค

Decrypt RSA ๋ผ๋Š” ๋ฌธ์ œ๋กœ ๋ˆ„๊ฐ€ ๋ด๋„ RSA ๋ฌธ์ œ์ธ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค

Franklin-Reiter Related Message Attack ๊ฐ™์ด ์ƒ๊ฒจ์„œ ๊ทธ๋ƒฅ GPTํ•œํ…Œ ์ฝ”๋“œ ๋˜์ €์ฃผ๋‹ˆ๊น ๋ฐ”๋กœ ์•Œ๋ ค์คฌ๋‹ค

from Crypto.Util.number import long_to_bytes
n  = 65756182677698595176310503281797205396723871448656240837096474734817334229057
c1 = 46677618784900339556238162525204951591280608902940779073106839725667571575750
c2 = 46210449457768784989069436594183693519377189857113615576663015891132602693402
k  = 1
f = [(-c1) % n, 0, 0, 1]
g = [((k**3 - c2) % n), (3*k**2) % n, (3*k) % n, 1]

def poly_trim(p):
    while p and p[-1] == 0:
        p.pop()
    return p

def poly_divmod(a, b):
    a = a.copy()
    poly_trim(a); poly_trim(b)
    deg_b = len(b) - 1
    inv_lc_b = pow(b[-1], -1, n)
    q = [0] * (len(a) - len(b) + 1) if len(a) >= len(b) else []
    while len(a) >= len(b) and a:
        d = len(a) - len(b)
        coeff = (a[-1] * inv_lc_b) % n
        q[d] = coeff
        for i, bi in enumerate(b):
            a[d + i] = (a[d + i] - coeff * bi) % n
        poly_trim(a)
    return poly_trim(q), poly_trim(a)

def poly_gcd(a, b):
    poly_trim(a); poly_trim(b)
    while b:
        _, r = poly_divmod(a, b)
        a, b = b, r
    # normalize leading coefficient to 1
    if not a:
        return a
    inv_lc = pow(a[-1], -1, n)
    return [(coeff * inv_lc) % n for coeff in a]

d = poly_gcd(f, g)
if len(d) != 2:
    raise ValueError(f"unexpected gcd degree: {len(d)-1}")
d0, d1 = d
m = (-d0 * pow(d1, -1, n)) % n

flag = long_to_bytes(m)
print(flag.decode())

# flag{fr4nkl1n-r3173r_4774ck}

์ด๊ฒƒ๋„ ํผ๋ธ”์ด๋‹ค

์‰ฌ์šด๊ฑด ๋นจ๋ฆฌ ํ’€ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์–ด๋ ค์šด ๊ฑธ ๋ชปํ‘ผ๋‹ค ใ…œ

 

๊ทธ ๋‹ค์Œ์œผ๋กœ๋Š” ๋ฆฌ๋ฒ„์‹ฑ์œผ๋กœ ๊ฐ”๋‹ค

1ํ•™๋…„ ๋ฆฌ๋ฒ„์‹ฑ ๊ณ ํŠธ๊ฐ€ ์žˆ์–ด์„œ, ์‰ฌ์šด ๋ฌธ์ œ ํ•˜๋‚˜ ํ’€๊ณ  ์žˆ๋Š”๊ฑด ๊ทธ ์นœ๊ตฌ๊ฐ€ ๊ธˆ๋ฐฉ ํ’€ ๊ฒƒ ๊ฐ™์•˜๊ณ , ๋‚˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค

๋”ฑ ๋ณด๋‹ˆ๊น ํ’€๋งŒํ•œ๊ฒŒ Save the cat์ด๋ผ์„œ ๋ฐ”๋กœ ์‹œ๋„ํ•ด๋ดค๋‹ค

 

apk ํŒŒ์ผ ํ•˜๋‚˜๊ฐ€ ์ฃผ์–ด์กŒ๊ณ , ๋งˆ์นจ!! Hackquest์— ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฆฌ๋ฒ„์‹ฑ ๋‚ด์šฉ์ด ์žˆ์–ด์„œ ์ฐธ๊ณ ํ•˜๋ฉด์„œ jadx๋กœ ๋””์ปดํŒŒ์ผํ•ด์„œ ์†Œ์Šค์ฝ”๋“œ ์ถ”์ถœํ–ˆ๋‹ค

์ด ํŒŒ์ผ 4๊ฐœ๋ฅผ GPTํ•œํ…Œ ๋˜์ ธ์ฃผ๊ณ  "flag๋ฅผ ๋ณต๊ตฌํ•˜๋Š” python ์ฝ”๋“œ ์งœ์ค˜" ํ•˜๋‹ˆ๊น ์ฝ”๋“œ ์งœ์คฌ๋‹ค

expected = [
    6, 102, 130, 179, 226, 146, 166, 20,
    116, 112, 98, 210, 244, 166, 54, 0,
    151, 66, 117, 7, 67, 36, 146, 51,
    230, 87, 135, 85, 39, 50, 85, 182
]

# 1. Invert column rotations
arr = expected.copy()
for i in range(4):
    for _ in range(i):
        temp = arr[i]
        arr[i] = arr[i + 12]
        arr[i + 12] = arr[i + 8]
        arr[i + 8] = arr[i + 4]
        arr[i + 4] = temp

# 2. Invert row rotations
for i in range(4):
    for _ in range(i):
        base = i * 4
        temp = arr[base]
        arr[base] = arr[base + 3]
        arr[base + 3] = arr[base + 2]
        arr[base + 2] = arr[base + 1]
        arr[base + 1] = temp

# 3. Invert XOR with "cat"
cat = [99, 97, 116]
for k in range(len(arr)):
    arr[k] ^= cat[k % 3]

# 4. Invert nibble mixing to recover the two 16โ€‘char strings
N = 16
orig1 = []
orig2 = []
for i in range(N):
    lo1 = arr[i] >> 4
    hi2 = arr[i] & 0xF
    lo2 = arr[N + i] >> 4
    hi1 = arr[N + i] & 0xF
    orig1.append((hi1 << 4) | lo1)
    orig2.append((hi2 << 4) | lo2)

flag1 = ''.join(chr(c) for c in orig1)
flag2 = ''.join(chr(c) for c in orig2)

print("var1:", flag1)
print("var2:", flag2)

# var1: flag{y0u_f1nally
# var2: _sav3d_th3_c4ts}

๋”ฑ ์ด๊ฑฐ ํ’€๊ณ  ๋‚˜๋‹ˆ๊น 1์‹œ๊ฐ„์ด ์ง€๋‚˜์žˆ์—ˆ๋‹ค

์ด๋•Œ๊นŒ์ง€๋Š” ์ข€ ๋นจ๋ฆฌ ํ’€์—ˆ๋‚˜? ์‹ถ์–ด์„œ ๋‚˜์˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค

๊ทธ ์ดํ›„๋กœ๋Š” ๋ง‰ํ˜”๊ณ , ๋ญ˜ ํ’€์–ด์•ผํ• ์ง€ ๋ชฐ๋ž์—ˆ๋‹ค

web ์ค‘์—์„œ Download์ด๋Ÿฐ๊ฑธ ๋ดค์—ˆ๋Š”๋ฐ, ์–ด๋–ค์‹์œผ๋กœ ํ•ด์•ผํ• ์ง€๋Š” ๋Œ€์ถฉ ๋А๋‚Œ์ด ์™”๋Š”๋ฐ, ์ž˜ ์•ˆ๋˜์„œ ํŒ€์›์ด ๋ฐ”๋กœ ํ’€์–ด์คฌ๋‹ค

ํฌ๋„ˆ๋ธ” ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ˆ ์ฃ„๋‹ค ํž™์—๋‹ค๊ฐ€ ํ•˜๋‚˜๋Š” QEMU์˜€๊ณ , ๋‚ด๊ฐ€ ํ’€ ์ž์‹ ์ด ์—†์—ˆ๋‹ค

 

๊ทธ๋ž˜์„œ ๊ทธ๋•Œ ์‚ด์ง ๋ฐฉํ™ฉ์„ ํ–ˆ๋‹ค

๋ฌธ์ œ ์Šฅ์Šฅ ๋ณด๋‹ค๊ฐ€ 12์‹œ๊ฐ€ ๋˜๊ณ  ์ ์‹ฌ์„ ์ฃผ์…จ๋‹ค

+) 12:00 - ์ ์‹ฌ

์ ์‹ฌ์ด ใ„นใ…‡ GOAT์˜€๋‹ค

๊ฑ ํ•œ์†ฅ ๋„์‹œ๋ฝ์ •๋„ ์ค„ ๊ฒƒ ๊ฐ™์•˜๋Š”๋ฐ, ๋ญ” ๋„์‹œ๋ฝ์— ์ƒˆ์šฐ ํŠ€๊น€๊ณผ ์Šคํ…Œ์ดํฌ์™€ ์ „๋ณต์ด ํ•œ ๋งˆ๋ฆฌ ํ†ต์œผ๋กœ ์žˆ์—ˆ๋‹ค

ํ›„์‹์œผ๋กœ ์ปต ๊ณผ์ผ๋„ ์ฃผ์…จ๋‹ค

์บฌ

์ €๊ฑฐ ๋จน์œผ๋ฉด์„œ ์•„๋ผ๋งˆํฌ ํ€„๋ฆฌํ‹ฐ ๋บจ์น˜๋Š” ์ ์‹ฌ์ด๋ผ๊ณ  ์ฐฌ์–‘ํ–ˆ๋‹ค

์„ ๋ฐฐํŒ€์—์„œ๋„ ์•„๋ผ๋งˆํฌ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์™”๋˜ ๊ฒƒ ๊ฐ™๋‹ค ใ„ทใ„ท

์ ์‹ฌ๋„ ์—ฌ์œ ๋กญ์ง€ ์•Š๊ณ , ๊ฑ ๋…ธํŠธ๋ถ ์œ„์—์„œ 10๋ถ„ ์ปท ํ•˜๊ณ  ๋ฐฅ ๋จน์—ˆ๋‹ค

์ด๋•Œ์ฏค๋˜๋‹ˆ๊น ์‚ด์ง ๋ชฝ๋กฑํ•ด์ง€๋ฉด์„œ ์ •์‹ ์ด ๋‚˜๊ฐ”๋‹ค

 

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๋Œ€ํšŒ๋ฅผ ๋›ฐ์—ˆ๋‹ค

์ด ์ดํ›„๋กœ๋Š” ํฌ๋„ˆ๋ธ” ํ•œ ๋ฌธ์ œ์™€ ๋ฆฌ๋ฒ„์‹ฑ ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค

ํฌ๋„ˆ๋ธ”์€ ํž™์ด์˜€๊ณ , "ํž™"ํ•˜์ง€ ์•Š์€ ๋‚˜๋Š” ํ’€์ง€ ๋ชปํ•˜์˜€๋‹ค

๋ฆฌ๋ฒ„์‹ฑ base ๋ฌธ์ œ๋ฅผ ์šฐ๋ฆฌ ํŒ€์ด ๋ชป ํ’€์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ํŒ€์—์„œ๋Š” ์™œ ๋งŽ์ด ํ‘ผ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค

์ด ํ…์ŠคํŠธ ํŒŒ์ผ 3๊ฐœ ์ฃผ์—ˆ๊ณ , ๋„์ €ํžˆ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ๊ฑ GPT๋‚˜ ์—„์ฒญ ๋Œ๋ ธ๋‹ค

import base64

encode_data = (
    "fniu3dQC3Wcimkeojn75nttmng3QQBxXMQ4cX9DkNMNbUCBhUY0e192zGHiFxwQYxVc7SPr0oPoW"
    "DjXVTukyKWtJfW3t3kxqmn4KjdgTjgp3nBDnQQNHMtBUXMiPNCQ9NYc4U9e81M7aGwt+GV3gxbxl"
    "SHRzojqFDunYDF67A+v="
)
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
cipher = base64.b64decode(encode_data)
cand = "".join(
    alphabet[(cipher[i] - i) & 0x3F]
    for i in range(len(cipher))
)
pad = "=" * ((4 - len(cand) % 4) % 4)
flag_raw = base64.b64decode(cand + pad)
print(flag_raw.decode())

์•„์ง๋„ ๋„๋Œ€์ฒด ์™œ ์ด๋ ‡๊ฒŒ ํ‘ธ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ 1์‹œ 40๋ถ„์ฏค์— ํ’€์—ˆ๋‹ค

 

์ด๊ฒŒ ๋‚ด๊ฐ€ ํ‘ผ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ์˜€๋‹ค

์ด๋•Œ์ฏค 7์œ„์ฏค์œผ๋กœ ์ถ”๋ฝํ–ˆ๊ณ , ์ข€ ๋ฌธ์ œ๋ฅผ ์ง๊ฐํ–ˆ๋‹ค

2์‹œ์— ์›น ํŒ€์›์ด ํผ๋ธ”์„ ๋•„๊ณ , 2๋“ฑ์œผ๋กœ ์˜ฌ๋ผ์„ฐ๋‹ค

๋ฐ”๋กœ ์ถ”๊ฒฉ๋‹นํ–ˆ๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ 3์‹œ์ฏค ํ›„๋ฐฐ๊ฐ€ ๋ฆฌ๋ฒ„์‹ฑ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ 4์œ„๋กœ ๋Œ€ํšŒ๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ–ˆ๋‹ค

3์‹œ๋ถ€ํ„ฐ๋Š” ํฌ๋„ˆ๋ธ”์„ ์‹œ๋„ํ•ด๋ดค์ง€๋งŒ, ์‹คํŒจํ–ˆ๋‹ค

๋งŽ์ด ํ’€์—ˆ๋Š”๋ฐ ์†”์งํžˆ ์‰ฌ์šด ๋ฌธ์ œ๋Š” ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค

์ด๋ ‡๊ฒŒ ๋Œ€ํšŒ๊ฐ€ ๋์ด ๋‚ฌ๋‹ค

ใ„นใ…ˆใ„ท์ธ๊ฑด 2์œ„ TheFatCat์—์„œ ๋๋‚˜๊ธฐ 5๋ถ„์ „ QEMU ์ •์‹ ๋‚˜๊ฐ„ ๋ฌธ์ œ๋ฅผ ํ‘ธ์…”์„œ 1๋“ฑ์„ ํ–ˆ๋‹ค

TheKing์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒ๊ธˆ 60๋งŒ์›์ด ์ฆ๋ฐœํ•ด๋ฒ„๋ฆฐ๊ฑธ ๋ณด์•˜๋‹ค

ใ„ทใ„ท

GOAT๋“ค์˜ ๊ฒฝ์Ÿ์€ ๋ฌด์„ญ๋‹ค

 

15:40 ~ 16:30 - ENKI ๊ฐ•์—ฐ

10๋ถ„์ •๋„ ์ฐธ๊ฐ€์ž๋“ค๊ณผ ์ด์•ผ๊ธฐ ํ•˜๊ณ , ์ถœ์ œ์ž ์—”ํ‚ค์—์„œ ๋กธ์—…์„ ์•Œ๋ ค์คฌ๋‹ค

์›น 2๊ฐœ ํฌ๋„ˆ๋ธ” 2 ๋ฌธ์ œ ์†”๋ธŒ ํ•ด์ฃผ์…จ๊ณ , ์•„์ง ํ’€๊ธฐ๊นŒ์ง€๋Š” ์—ฐ์Šต์ด ๋” ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค

๊ทธ๋ฆฌ๊ณ  ์—”ํ‚ค ๋ถ€์‚ฌ์žฅ๋‹˜๊ป˜์„œ ๊ฐ•์—ฐ์„ ํ•ด์ฃผ์…จ๋‹ค

์ด๊ฒŒ ๊ทธ๋ƒฅ ๋ณด์•ˆ์œค๋ฆฌ ๋˜ ์„ค๋ช…ํ•˜๋ฉด ์ข€ ์ง€๋ฃจํ•ด์งˆ ์ˆ˜๋„ ์žˆ์—ˆ๋Š”๋ฐ, ์‹ค์ œ ๊ณต๊ณต๊ธฐ๊ด€์ด ์–ด๋–ค ์›๋ฆฌ๋กœ ๊ณต๊ฒฉ์„ ๋‹นํ–ˆ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์„ธ์„ธํ•˜๊ณ , ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…์„ ํ•ด์ฃผ์…จ๋‹ค

HackQuest์ฒ˜๋Ÿผ ์‚ฌ๊ณ ์˜ ํ๋ฆ„์ด ์–ด๋–ป๊ฒŒ ํ˜๋Ÿฌ๊ฐ€์•ผํ•˜๋Š”์ง€๋ฅผ ์ž˜ ์งš์–ด์ฃผ์‹œ๋ฉด์„œ ์„ค๋ช…ํ•ด์ฃผ์…”์„œ ์ดํ•ด๊ฐ€ ์ž˜ ๋˜์—ˆ๋‹ค

๊ทธ๋ฆฌ๊ณ  "50%์˜ ํ™•๋ฅ ๋กœ ์• ๋‹ˆ ํ”„์‚ฌ๋Š” ๊ณผํ•™์ด๋‹ค" ๋ฅผ ์ฃผ์žฅํ•˜์…จ๋‹ค

๋ญ ์ด๋ ‡๊ฒŒ ๊ฐ•์—ฐ ํ•ด์ฃผ์‹œ๊ณ  ์‹œ์ƒ์‹์„ ํ–ˆ๋‹ค

 

16:30 ~ 16:50 - ์‹œ์ƒ์‹ ๋ฐ ์‚ฌ์ง„ ์ดฌ์˜

๋“œ๋””์–ด ์‹œ์ƒ์‹์„ ํ–ˆ๋‹ค

ํŒ€์› ๋‹จ์ฒด ์‚ฌ์ง„๋„ ์žˆ๋Š”๋ฐ, ๋ชจ์ž์ดํฌ ํ•˜๋‹ˆ๊น ๋„ˆ๋ฌด ๋ฒ”์ฃ„์ž ๊ฐ™์•„์„œ ๊ทธ๋ƒฅ ๋ถ€๊ณ„์— ์˜ฌ๋ ธ๋‹ค

์ฒซ ๋Œ€ํšŒ ๋ณธ์„ ์ธ๋ฐ, 10๋“ฑ๋งŒ ํ”ผํ•˜์ž์˜€๋Š”๋ฐ, ์ˆ˜์ƒ์„ ํ•ด์„œ ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค

 

17:30 ~ 19:30 - ํšŒ์‹ in ์•„์›ƒ๋‹ญ

๋””๋ฏธ๊ณ  3ํŒ€์ด์„œ ์น˜ํ‚จ์ง‘์„ ๊ฐ”๋‹ค

10๋ช…์ด์„œ ๊ฐ”๋‹ค

5๋งˆ๋ฆฌ ์‹œ์ผœ์„œ ์ด์•ผ๊ธฐ๋„ ํ•˜๊ณ , ๋จน์œผ๋ฉด์„œ ๋†€์•˜๋‹ค

์ธ๋‹น 15000์›์— ์น˜ํ‚จ์ด๋ผ ์ •๋ง ์ข‹์•˜๋‹ค

๋˜ ์•„์ฃผ๋Œ€์—์„œ ๊ธฐ๋… ์„ ํ’๊ธฐ์™€ ํ‹ฐ์…”์ธ ๋„ ์ฃผ์…จ๋‹ค

์ •๋ง ๊ฐ์‚ฌํ•˜๋‹ค

 

์—ฌํ•˜ํŠผ ์ด๋ ‡๊ฒŒ ์•„์ฃผ๋Œ€ํ•™๊ต CTF๋ฅผ ๋งˆ์น˜๊ฒŒ ๋˜์—ˆ๋‹ค

์ฒ˜์Œ ์˜ˆ์„ ์„ ๋‚˜๊ฐˆ๋•Œ๋„, ๋ณธ์„ ๋งŒ๋ณธ์„ ๋งŒ!์„ ์™ธ์น˜๋ฉฐ ๋‚˜๊ฐ„ ๋Œ€ํšŒ์˜€๊ณ , ๋‚ด ์ƒ์•  ์ฒ˜์Œ์œผ๋กœ ๋ณธ์„ ์„ ๋‚˜๊ฐ”๋‹ค

๊ทธ ์ƒํ™ฉ์—์„œ ์ฒซ ์ˆ˜์ƒ์„ ํ•ด์„œ ๋„ˆ๋ฌด ์ข‹๋‹ค

ํฌ๋„ˆ๋ธ”์„ ๋” ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค

์ •๋ง ์ข‹์€ ๊ฒฝํ—˜์ด์˜€๋‹ค!

'CTF' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ ์ œ 31ํšŒ ํ•ดํ‚น ์บ ํ”„ ํ›„๊ธฐ ]  (8) 2025.09.01
[ 2025 ์ œ 1ํšŒ ๊ฒฝ๊ธฐ๋„ ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ์บ ํ”„ ํ›„๊ธฐ ]  (2) 2025.08.25
[2025 COSS ์•„์ฃผ๋Œ€ CTF - ์˜ˆ์„  ] - Write Up & ํ›„๊ธฐ  (0) 2025.06.23
[2025 Codegate ์˜ˆ์„ ] - Write Up & ํ›„๊ธฐ  (0) 2025.05.26
[2025 DIMI CTF Write Up] - Prob by pandas. with ํ›„๊ธฐ  (3) 2025.03.25
'CTF' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ ์ œ 31ํšŒ ํ•ดํ‚น ์บ ํ”„ ํ›„๊ธฐ ]
  • [ 2025 ์ œ 1ํšŒ ๊ฒฝ๊ธฐ๋„ ์‚ฌ์ด๋ฒ„ ๋ณด์•ˆ ์บ ํ”„ ํ›„๊ธฐ ]
  • [2025 COSS ์•„์ฃผ๋Œ€ CTF - ์˜ˆ์„  ] - Write Up & ํ›„๊ธฐ
  • [2025 Codegate ์˜ˆ์„ ] - Write Up & ํ›„๊ธฐ
Hello๐Ÿ–๏ธI'm pandas from KDMHS
Hello๐Ÿ–๏ธI'm pandas from KDMHS
ํ•œ๊ตญ๋””์ง€ํ„ธ๋ฏธ๋””์–ด๊ณ ๋“ฑํ•™๊ต 23๊ธฐ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ์—์„œ ํ•ดํ‚น์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š” pandas์ž…๋‹ˆ๋‹ค.
  • Hello๐Ÿ–๏ธI'm pandas from KDMHS
    pandasiuuuu
    Hello๐Ÿ–๏ธI'm pandas from KDMHS
  • ๊ณต์ง€์‚ฌํ•ญ

    • Hello I'm pandas ๐Ÿ–๏ธ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (40)
      • CTF (13)
      • ๋””๋ฏธ๊ณ  (17)
      • ๋ฐฑ์ค€ (1)
      • Dreamhack (5)
      • INFO (3)
      • 1 ไบบ 1 Project (1)
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    docker
    Baekjoon
    reversing
    ctf
    ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ
    ๋””๋ฏธ๊ณ 
    ํ•ดํ‚น
    ๋ฐฑ์ค€
    Python
    info
    1์ธ1ํ”„๋กœ์ ํŠธ
    ํšŒ๊ณ ๋ก
    pwnable
    ํŒฐ๋ฆฐ๋“œ๋กฌ
    DreamHack
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
Hello๐Ÿ–๏ธI'm pandas from KDMHS
[ 2025 COSS ์•„์ฃผ๋Œ€ CTF - ๋ณธ์„ ] - Write Up & ํ›„๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”