[πŸ₯‰ Bronze 3] μ²¨λΆ€νŒŒμΌ μ•ˆμ— λ“€μ–΄μžˆλŠ” 첫 ν”Œλž˜κ·Έ β€” DreamHack Wargame Tutorial 풀이

2026-06-22Β·1λΆ„ 읽기·

[πŸ₯‰ Bronze 3] μ²¨λΆ€νŒŒμΌ μ•ˆμ— λ“€μ–΄μžˆλŠ” 첫 ν”Œλž˜κ·Έ β€” DreamHack Wargame Tutorial 풀이

λ“œλ¦Όν•΅μ΄ μ›Œκ²Œμž„ μ‚¬μš©λ²•μ„ 읡히라고 λ§Œλ“€μ–΄ λ‘” νŠœν† λ¦¬μ–Ό 문제. μ²¨λΆ€νŒŒμΌμ„ λ°›μ•„ 압좕을 ν’€λ©΄ flag.txt μ•ˆμ— ν”Œλž˜κ·Έκ°€ ν‰λ¬ΈμœΌλ‘œ λ“€μ–΄ 있고, κ·Έ 값을 κ·ΈλŒ€λ‘œ μ œμΆœν•˜λ©΄ λλ‚œλ‹€. 풀이 κΈ°μˆ μ€ μ—†μ§€λ§Œ, 파일 λ‹€μš΄λ‘œλ“œ β†’ μ••μΆ• ν•΄μ œ β†’ ν”Œλž˜κ·Έ 확인 β†’ μ œμΆœμ΄λΌλŠ” μ›Œκ²Œμž„μ˜ κΈ°λ³Έ 흐름과 flag.txtλ₯Ό 읽을 λ•Œ ν”νžˆ λ†“μΉ˜λŠ” 끝의 κ°œν–‰ ν•œ λ°”μ΄νŠΈκΉŒμ§€ μ§šμ–΄λ³Έλ‹€.

문제: DreamHack β€” Wargame Tutorial λΆ„λ₯˜: Misc (μž…λ¬Έ / νŠœν† λ¦¬μ–Ό) λ‚œμ΄λ„: πŸ₯‰ Bronze 3 FLAG: DH{21008c3ae798aac87cc4939917b855b54b5a5799}

λ“œλ¦Όν•΅μ— κ°€μž…ν•˜κ³  μ›Œκ²Œμž„ 탭을 처음 μ—΄λ©΄ λ§Œλ‚˜λŠ” μ—°μŠ΅ λ¬Έμ œλ‹€. ν‘ΈλŠ” 기술 같은 건 μ—†κ³ , "μ›Œκ²Œμž„μ΄ μ–΄λ–»κ²Œ κ΅΄λŸ¬κ°€λŠ”κ°€"λ₯Ό ν•œ 바퀴 돌렀보게 ν•˜λŠ” 게 λͺ©μ μ΄λ‹€. μΆœμ œμžλ„ Dreamhack 본인으둜 λ˜μ–΄ μžˆλ‹€.

문제 μ„€λͺ…에 풀이가 κ·ΈλŒ€λ‘œ μ ν˜€ μžˆλ‹€.

μ²¨λΆ€νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•œ ν›„ 압좕을 ν•΄μ œν•˜λ©΄ flag.txt 파일이 μ‘΄μž¬ν•©λ‹ˆλ‹€. ν•΄λ‹Ή νŒŒμΌμ„ μ—΄μ–΄ ν”Œλž˜κ·Έλ₯Ό ν™•μΈν•œ ν›„ μ œμΆœν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•˜μ„Έμš”. ν”Œλž˜κ·Έ ν˜•μ‹μ€ DH{...} μž…λ‹ˆλ‹€.

λ“œλ¦Όν•΅ β€” μ›Œκ²Œμž„μ— μ ‘κ·Όν•˜λ €λ©΄ λ¨Όμ € λ‘œκ·ΈμΈν•œλ‹€
λ“œλ¦Όν•΅ β€” μ›Œκ²Œμž„μ— μ ‘κ·Όν•˜λ €λ©΄ λ¨Όμ € λ‘œκ·ΈμΈν•œλ‹€

문제 κ°œμš”

ν•­λͺ©λ‚΄μš©
문제λͺ…Wargame Tutorial
λ‚œμ΄λ„πŸ₯‰ Bronze 3
λΆ„λ₯˜Misc (μž…λ¬Έ)
μ œκ³΅μ²¨λΆ€νŒŒμΌ 1개 (flag.txt κ°€ λ“  zip)
ν•΅μ‹¬ν”Œλž˜κ·Έκ°€ 파일 μ•ˆμ— ν‰λ¬ΈμœΌλ‘œ λ“€μ–΄ 있음 β€” μ½μ–΄μ„œ 제좜

이 λ¬Έμ œλŠ” μ΅μŠ€ν”Œλ‘œμž‡μ΄ μ—†λ‹€. μ²¨λΆ€νŒŒμΌμ„ λ°›μ•„ 압좕을 ν’€κ³ , μ•ˆμ— λ“  flag.txt λ₯Ό μ—΄μ–΄ 적힌 값을 μ œμΆœν•˜λ©΄ 끝이닀. λŒ€μ‹  이 λ‹¨μˆœν•œ ν•œ 바퀴 μ•ˆμ— μ›Œκ²Œμž„μ„ ν’€ λ•Œ 맀번 λ°˜λ³΅ν•˜λŠ” λ™μž‘μ΄ λ‹€ λ“€μ–΄ μžˆλ‹€.

🧩 λ°°κ²½ β€” λ“œλ¦Όν•΅ μ›Œκ²Œμž„μ΄ κ΅΄λŸ¬κ°€λŠ” 방식

μ›Œκ²Œμž„ λ¬Έμ œλŠ” 크게 두 μ’…λ₯˜λ‹€. μ–΄λŠ μͺ½μ΄λ“  λͺ©ν‘œλŠ” λ˜‘κ°™μ΄ DH{...} ν˜•μ‹μ˜ ν”Œλž˜κ·Έ ν•œ 쀄을 μ°Ύμ•„ μ œμΆœν•˜λŠ” 것이닀.

  • μ²¨λΆ€νŒŒμΌν˜• β€” 문제 νŽ˜μ΄μ§€μ—μ„œ 파일(λ°”μ΄λ„ˆλ¦¬, μ†ŒμŠ€, 이미지 λ“±)을 λ‚΄λ €λ°›μ•„ λ‚΄ μ»΄ν“¨ν„°μ—μ„œ λΆ„μ„ν•œλ‹€. λ¦¬λ²„μ‹±Β·ν¬λ¦½ν† Β·ν¬λ Œμ‹ λ¬Έμ œκ°€ 보톡 이μͺ½μ΄λ‹€. 이번 νŠœν† λ¦¬μ–Όλ„ μ²¨λΆ€νŒŒμΌν˜•μΈλ°, 뢄석할 것도 없이 ν”Œλž˜κ·Έκ°€ κ·Έλƒ₯ ν…μŠ€νŠΈλ‘œ λ“€μ–΄ μžˆλŠ” κ°€μž₯ λ‹¨μˆœν•œ ν˜•νƒœλ‹€.

  • μ„œλ²„ν˜• β€” λ¬Έμ œκ°€ μ„œλ²„(μ›Ή URLμ΄λ‚˜ nc 접속 μ£Όμ†Œ)λ₯Ό λ„μ›Œ μ£Όκ³ , 거기에 취약점을 μ°”λŸ¬ ν”Œλž˜κ·Έλ₯Ό λ°›μ•„λ‚Έλ‹€. μ›ΉΒ·ν¬λ„ˆλΈ” λ¬Έμ œκ°€ 이μͺ½μ΄λ‹€. μ΄λ•ŒλŠ” "μ„œλ²„ λ„μš°κΈ°" λ²„νŠΌμœΌλ‘œ μΈμŠ€ν„΄μŠ€λ₯Ό λ°›κ³ , κ·Έ μ£Όμ†Œλ‘œ κ³΅κ²©ν•œλ‹€.

ν”Œλž˜κ·Έ ν˜•μ‹μ΄ DH{...} 둜 μ •ν•΄μ Έ μžˆλ‹€λŠ” 점이 μ€‘μš”ν•˜λ‹€. νŒŒμΌμ΄λ‚˜ μ„œλ²„ 응닡을 λ’€μ§ˆ λ•Œ DH{ 둜 μ‹œμž‘ν•˜λŠ” λ¬Έμžμ—΄λ§Œ 찾으면 되고, λ°˜λŒ€λ‘œ κ·Έ ν˜•μ‹μ΄ μ•„λ‹ˆλ©΄ 아직 ν”Œλž˜κ·Έκ°€ μ•„λ‹ˆλΌλŠ” λœ»μ΄λ‹€.

이번 λ¬Έμ œλŠ” μ²¨λΆ€νŒŒμΌν˜•μ΄λ‹ˆ, νŒŒμΌμ„ λ°›μ•„ ν‘ΈλŠ” 흐름을 κ·ΈλŒ€λ‘œ 따라가 보자.

πŸ“₯ 1. μ²¨λΆ€νŒŒμΌ λ°›μ•„ μ••μΆ• ν’€κΈ°

문제 νŽ˜μ΄μ§€μ˜ λ‹€μš΄λ‘œλ“œ λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ zip ν•˜λ‚˜κ°€ λ–¨μ–΄μ§„λ‹€. 압좕을 ν’€λ©΄ μ•ˆμ— 파일이 λ“€μ–΄ μžˆλ‹€.

unzip challenge_1925.zip
ls -l
압좕을 ν’€λ©΄ flag.txt ν•˜λ‚˜κ°€ λ‚˜μ˜¨λ‹€
압좕을 ν’€λ©΄ flag.txt ν•˜λ‚˜κ°€ λ‚˜μ˜¨λ‹€

λ“€μ–΄ μžˆλŠ” 건 flag.txt 단 ν•˜λ‚˜, 45λ°”μ΄νŠΈμ§œλ¦¬ μž‘μ€ νŒŒμΌμ΄λ‹€. 이름뢀터 λŒ€λ†“κ³  ν”Œλž˜κ·Έκ°€ μ—¬κΈ° μžˆλ‹€κ³  μ•Œλ €μ€€λ‹€. λ¬Έμ œμ— λ”°λΌμ„œλŠ” μ••μΆ• μ•ˆμ— μ†ŒμŠ€ μ½”λ“œλ‚˜ μ‹€ν–‰ 파일이 μ—¬λŸ¬ 개 λ“€μ–΄ μžˆκΈ°λ„ ν•œλ°, μ΄λ²ˆμ—” ν…μŠ€νŠΈ 파일 ν•˜λ‚˜κ°€ μ „λΆ€λ‹€.

πŸ”Ž 2. ν”Œλž˜κ·Έ 확인

νŒŒμΌμ„ μ—΄κΈ° 전에 μ–΄λ–€ μ’…λ₯˜μΈμ§€λΆ€ν„° λ³΄λŠ” μŠ΅κ΄€μ΄ μ’‹λ‹€. file 둜 ν˜•μ‹μ„ ν™•μΈν•˜κ³ , ν‰λ²”ν•œ ν…μŠ€νŠΈλ©΄ cat 으둜 κ·ΈλŒ€λ‘œ μ½λŠ”λ‹€.

file flag.txt
cat flag.txt
file둜 ASCII ν…μŠ€νŠΈμž„μ„ ν™•μΈν•˜κ³  cat으둜 ν”Œλž˜κ·Έλ₯Ό μ½λŠ”λ‹€
file둜 ASCII ν…μŠ€νŠΈμž„μ„ ν™•μΈν•˜κ³  cat으둜 ν”Œλž˜κ·Έλ₯Ό μ½λŠ”λ‹€

file 이 ASCII text 라고 μ•Œλ €μ£Όλ‹ˆ κ·Έλƒ₯ ν…μŠ€νŠΈλ‹€. cat 으둜 좜λ ₯ν•˜λ©΄ ν”Œλž˜κ·Έκ°€ κ·ΈλŒ€λ‘œ 보인닀.

DH{21008c3ae798aac87cc4939917b855b54b5a5799}

DH{ 둜 μ‹œμž‘ν•΄ } 둜 λ‹«νžˆλŠ”, ν˜•μ‹μ— λ§žλŠ” ν”Œλž˜κ·Έλ‹€. 이 값이 정닡이닀.

끝에 뢙은 κ°œν–‰ ν•œ λ°”μ΄νŠΈ

μ—¬κΈ°μ„œ μž…λ¬Έμžκ°€ ν•œ λ²ˆμ”© κ±Έλ¦¬λŠ” 지점이 μžˆλ‹€. cat 으둜 λ³Έ ν”Œλž˜κ·Έλ₯Ό 마우슀둜 λ“œλž˜κ·Έν•΄ λ³΅μ‚¬ν•˜λ©΄ 쀄 끝의 κ°œν–‰ 문자(\n) κΉŒμ§€ 같이 λ”Έλ €μ˜€κΈ° 쉽닀. xxd 둜 λ°”μ΄νŠΈλ₯Ό 직접 보면 보인닀.

xxd flag.txt
xxd둜 λ³Έ 원본 λ°”μ΄νŠΈ β€” λ§ˆμ§€λ§‰ 0aκ°€ μ€„λ°”κΏˆ
xxd둜 λ³Έ 원본 λ°”μ΄νŠΈ β€” λ§ˆμ§€λ§‰ 0aκ°€ μ€„λ°”κΏˆ

맨 끝의 0a κ°€ κ°œν–‰(\n)이닀. 파일 λ‚΄μš©μ€ DH{...} 43λ°”μ΄νŠΈ + κ°œν–‰ 1λ°”μ΄νŠΈ = 44λ°”μ΄νŠΈμ΄κ³ , μ±„μ κΈ°λŠ” 보톡 μ•žλ’€ κ³΅λ°±Β·κ°œν–‰μ„ 닀듬어 μ£Όμ§€λ§Œ μ•„λ‹Œ κ²½μš°λ„ μžˆλ‹€. μ œμΆœμΉΈμ—λŠ” DH{ λΆ€ν„° } κΉŒμ§€λ§Œ λ„£κ³ , 뒀에 빈 μ€„μ΄λ‚˜ 곡백이 따라뢙지 μ•Šμ•˜λŠ”μ§€ ν•œ 번 ν™•μΈν•˜λŠ” 게 μ•ˆμ „ν•˜λ‹€.

🚩 3. 제좜

ν™•μΈν•œ ν”Œλž˜κ·Έλ₯Ό 문제 νŽ˜μ΄μ§€μ˜ μ œμΆœμΉΈμ— λΆ™μ—¬λ„£κ³  μ œμΆœν•˜λ©΄ ν•΄κ²° μ²˜λ¦¬λœλ‹€. μ—¬κΈ°κΉŒμ§€κ°€ μ›Œκ²Œμž„ ν•œ 문제의 전체 흐름이닀.

파일 λ‹€μš΄λ‘œλ“œ β†’ μ••μΆ• ν•΄μ œ β†’ ν”Œλž˜κ·Έ 확인 β†’ 제좜
파일 λ‹€μš΄λ‘œλ“œ β†’ μ••μΆ• ν•΄μ œ β†’ ν”Œλž˜κ·Έ 확인 β†’ 제좜

제좜이 ν†΅κ³Όν•˜λ©΄ κ·Έ λ¬Έμ œλŠ” ν•΄κ²° λͺ©λ‘μœΌλ‘œ λ„˜μ–΄κ°„λ‹€. μ„œλ²„λ₯Ό λ„μ›Œ ν‘ΈλŠ” λ¬Έμ œμ˜€λ‹€λ©΄ μ •λ‹΅ 제좜 μ‹œμ μ— VM ν¬λ ˆλ”§μ΄ ν™˜κΈ‰λ˜λŠ”λ°, 이번처럼 μ„œλ²„ 없이 파일만 μ£ΌλŠ” λ¬Έμ œλŠ” μ• μ΄ˆμ— ν¬λ ˆλ”§μ„ μ“°μ§€ μ•ŠλŠ”λ‹€.

πŸ“ 정리

ν”Œλž˜κ·Έλ₯Ό μ°ΎλŠ” 것과, κ·Έ ν”Œλž˜κ·Έλ₯Ό μ–΄λ””μ„œ μ–΄λ–»κ²Œ λ°›λŠλƒλŠ” λ³„κ°œμ˜ λ¬Έμ œλ‹€.

이 νŠœν† λ¦¬μ–Όμ€ λ‘˜ 쀑 λ’€μͺ½ β€” λ°›μ•„μ˜€λŠ” νλ¦„λ§Œ 닀룬닀. μ²¨λΆ€νŒŒμΌμ„ λ‚΄λ €λ°›μ•„ 압좕을 ν’€κ³ , μ•ˆμ— λ“  νŒŒμΌμ„ 읽어 DH{...} λ₯Ό μ°Ύκ³ , κ·Έ 값을 μ œμΆœν•œλ‹€. μ‹€μ œ λ¬Έμ œμ—μ„œλŠ” 이 "μ°ΎκΈ°" 단계가 리버싱·웹 κ³΅κ²©Β·μ•”ν˜Έ ν•΄λ…μœΌλ‘œ λ°”λ€” 뿐, λ°›μ•„μ˜€λŠ” λ°”κΉ₯ 흐름은 거의 κ·ΈλŒ€λ‘œλ‹€.

짚고 갈 건 두 κ°€μ§€λ‹€.

ν•˜λ‚˜λŠ” νŒŒμΌμ„ μ—΄κΈ° 전에 file 둜 μ’…λ₯˜λΆ€ν„° ν™•μΈν•˜λŠ” μŠ΅κ΄€μ΄λ‹€. μ΄λ²ˆμ—” ν…μŠ€νŠΈλΌ cat 으둜 λλ‚¬μ§€λ§Œ, μ‹€μ œ λ¬Έμ œμ—μ„œλŠ” 같은 .txt 라도 μ•ˆμ΄ base64λ‚˜ hex, λ‹€λ₯Έ 포맷으둜 인코딩돼 μžˆλŠ” κ²½μš°κ°€ λ§Žλ‹€. μ’…λ₯˜λ₯Ό λ¨Όμ € 보면 λ‹€μŒμ— cat 을 μ“Έμ§€ xxdΒ·strings·디코더λ₯Ό μ“Έμ§€ λ°”λ‘œ νŒλ‹¨μ΄ μ„ λ‹€.

λ‹€λ₯Έ ν•˜λ‚˜λŠ” 볡사할 λ•Œ λ”Έλ €μ˜€λŠ” κ°œν–‰Β·κ³΅λ°±μ΄λ‹€. λΆ„λͺ… λ§žλŠ” ν”Œλž˜κ·ΈμΈλ° 자꾸 μ˜€λ‹΅μ΄ λ‚˜λ©΄, μ‹­μ€‘νŒ”κ΅¬ 끝에 보이지 μ•ŠλŠ” ν•œ λ°”μ΄νŠΈκ°€ 뢙은 것이닀. xxd 둜 원본 λ°”μ΄νŠΈλ₯Ό λ³΄λŠ” μŠ΅κ΄€μ΄ 이런 ν—›μˆ˜κ³ λ₯Ό 쀄여쀀닀.

이 글이 도움이 λλ‚˜μš”?

Comments

λŒ“κΈ€

0개

λŒ“κΈ€μ„ 남기렀면 둜그인이 ν•„μš”ν•΄μš”. (넀이버 Β· ꡬ글 계정)

λŒ“κΈ€ λΆˆλŸ¬μ˜€λŠ” 쀑…

Related

κ΄€λ ¨ κΈ€

3개
[πŸ₯‰ Bronze 4] nc둜 처음 μž‘μ•„λ³΄λŠ” ν”Œλž˜κ·Έ β€” DreamHack Exercise: Welcome-Beginners 풀이
blog

[πŸ₯‰ Bronze 4] nc둜 처음 μž‘μ•„λ³΄λŠ” ν”Œλž˜κ·Έ β€” DreamHack Exercise: Welcome-Beginners 풀이

μ„œλ²„μ—μ„œ λ„λŠ” ν”„λ‘œκ·Έλž¨μ΄ ./flag λ₯Ό 읽어 λ©”λͺ¨λ¦¬μ— μ˜¬λ €λ‘κ³ , μž…λ ₯ν•œ λ¬Έμžμ—΄μ΄ "Dreamhack" κ³Ό μ •ν™•νžˆ 같을 λ•Œλ§Œ κ·Έ ν”Œλž˜κ·Έλ₯Ό 좜λ ₯ν•œλ‹€. μ΅μŠ€ν”Œλ‘œμž‡μ΄λž„ 게 μ—†κ³ , nc 둜 접속해 strcmp κ²Œμ΄νŠΈκ°€ μ›ν•˜λŠ” 닡을 ν•œ 쀄 λ„£μ–΄μ£Όλ©΄ 끝. λ“œλ¦Όν•΅ μ›Œκ²Œμž„μ˜ nc μ ‘μ†Β·ν”Œλž˜κ·Έ 회수 흐름을 μ²˜μŒλΆ€ν„° μ§šμ–΄λ³Έλ‹€.
#dreamhack#ctf#misc+4
2026-06-21#dreamhack +4
[πŸ₯‰ Bronze 4] ssh 둜 μ„œλ²„μ— λ“€μ–΄κ°€ flag λ₯Ό μ½λŠ”λ‹€ β€” DreamHack Exercise: SSH 풀이
blog

[πŸ₯‰ Bronze 4] ssh 둜 μ„œλ²„μ— λ“€μ–΄κ°€ flag λ₯Ό μ½λŠ”λ‹€ β€” DreamHack Exercise: SSH 풀이

λ“œλ¦Όν•΅ 미슀크 νƒ­μ˜ SSH μ—°μŠ΅ 문제. μ΅μŠ€ν”Œλ‘œμž‡μ€ μ—†κ³ , μ£Όμ–΄μ§„ κ³„μ •μœΌλ‘œ 원격 μ„œλ²„μ— ssh 둜 접속해 ν™ˆμ— 놓인 flag νŒŒμΌμ„ 읽으면 λλ‚œλ‹€. ssh κ°€ 무엇이고 첫 접속 λ•Œ μ™œ 호슀트 ν‚€λ₯Ό ν™•μΈμ‹œν‚€λŠ”μ§€, root μ†Œμœ  νŒŒμΌμ„ μ–΄λ–»κ²Œ 일반 계정이 읽을 수 μžˆλŠ”μ§€(파일 κΆŒν•œ), λ“€μ–΄κ°„ 셸이 사싀 restricted bash λΌλŠ” λ””ν…ŒμΌκΉŒμ§€ μž…λ¬Έμž λˆˆλ†’μ΄λ‘œ μ§šλŠ”λ‹€.
#dreamhack#ctf#misc+4
2026-06-23#dreamhack +4
[πŸ₯‰ Bronze 2] μ‹ μŒμ†Œλ¦¬ 13κΈ€μžλ‘œ μ§  ν”„λ‘œκ·Έλž¨μ—μ„œ Base45 ν”Œλž˜κ·Έ κΊΌλ‚΄κΈ° β€” DreamHack μ–΄ ν˜•μ΄μ•Ό 풀이
blog

[πŸ₯‰ Bronze 2] μ‹ μŒμ†Œλ¦¬ 13κΈ€μžλ‘œ μ§  ν”„λ‘œκ·Έλž¨μ—μ„œ Base45 ν”Œλž˜κ·Έ κΊΌλ‚΄κΈ° β€” DreamHack μ–΄ ν˜•μ΄μ•Ό 풀이

배포본은 ν™•μž₯μžκ°€ .bro 인 22KB 짜리 ν…μŠ€νŠΈ ν•˜λ‚˜λ‹€. λ“±μž₯ν•˜λŠ” κΈ€μžκ°€ λ§ˆμΉ¨ν‘œκΉŒμ§€ 합쳐 μ—΄μ„Έ μ’…λ₯˜λΏμ΄λΌ λ‚œν•΄ν•œ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ "ν˜€μ—‰..." μ†ŒμŠ€λΌλŠ” 게 금방 λ“œλŸ¬λ‚œλ‹€. λͺ…μ„ΈλŒ€λ‘œ 인터프리터λ₯Ό μ§œμ„œ 돌리면 영문 μ•ˆλ‚΄λ¬Έμ΄ λ‚˜μ˜€κ³ , κ·Έ μ•ˆμ— λ”°μ˜΄ν‘œλ‘œ 묢인 26κΈ€μžκ°€ ν•˜λ‚˜ λ°•ν˜€ μžˆλ‹€. 문제 μ„€λͺ…이 λ§ν•œ "45μ‚΄" 은 μ‹œμ € 45κ°€ μ•„λ‹ˆλΌ Base45 μ˜€λ‹€.
#dreamhack#ctf#misc+7
2026-08-20#dreamhack +3