[CyberGon CTF 2024] Writeup
2025 CyberGon CTF Writeup (Osint, Stegano, Crypto, Reconnaissance)
다른 분야는 어려워서 못 풀었고 그냥 Osint, Stegano, Crypto, Reconnaissance 풀어봤다.
OSINT
Favorite Journal
The Statue
Vacation(1)
STEGANO
Truesight
Crypto
RSA1
Reconnaissance
Secure Life
OSINT
Favorite Journal
저널 맨 앞 페이지 사진이다.
https://www.learnbig.net/th/books/shwe-thway-vol-45-no-15/
구글 렌즈로 번역해보면 ‘Shwe Thway Vol. 45 and No.15’ 가 나온다.
이 저널 1권 1호의 출판일, 출판사 번호를 알아내야 한다.
https://sites.google.com/view/haytha-yu-mon/shwe-thway-vol-01-1969
여기서 pdf 스캔 파일을 찾을 수 있다.
1권 1호의 표지이다.
왼쪽 위에 출판일이 적혀있는데 구글 번역기로는 인식이 잘 되지 않아서 직접 글자 찾아가면서 번역했다.
1969년 4월 1일에 출판되었다.
마지막 페이지에는 출판사 정보가 적혀 있다.
구글 이미지 번역으로 보면 ‘Temple of Literature Printing House’에서 출판되었다고 한다.
출판사 번호는 0032이다.
CYBERGON_CTF2024{4-1-69_0032}
The Statue
동상 사진이 주어진다.
구글 렌즈로 쉽게 어디인지 찾을 수 있다.
‘Maha Boohi Ta Htaung Standing Buddha’ 라는 이름의 장소이다.
동상 앞에는 3개의 정사각형 타일들이 보인다.
카메라 각도를 보아 네 블럭 정도 떨어진 곳의 좌표는 22.0801
95.2885
이다.
CYBERGON_CTF2024{22.0801_95.2885}
Vacation (1)
png
파일이 주어졌지만 열리지 않는다.
010Editor로 열어보면 ftyp
라는 문자열이 보이는 것으로 보아 HEIC
파일인 것을 알 수 있다.
일반적으로 HEIF
이미지를 의미한다.
갤럭시 폰으로 사진을 찍으면 HEIF
파일로 저장된다.
하지만 윈도우 기본 사진 뷰어로는 열 수 없다.
HEIF
to PNG
변환기를 이용해서 변환하면 이미지 파일을 볼 수 있다.
구글 렌즈를 통해서 베트남의 Ha Long
인근인 것을 알 수 있다.
관람차의 각도와 롤러코스터 레일이 있다는 정보를 통해서 힌트를 얻을 수 있다.
사진이 찍힌 것으로 보이는 두 빌딩이 있는데 왼쪽에서 찍힌 듯 하다.
두 건물 모두 같은 호텔인데 호텔 이름은 ‘Muong Thanh Luxury Ha Long Centre Hotel’이다.
CYBERGON_CTF2024{Muong Thanh Luxury Ha Long Centre Hotel, Ha Long, Vietnam}
STEGANO
Truesight
PNG
파일이 주여졌는데 열리지 않는다.
헥스를 뜯어보면 IDHR
, RGB
같은 PNG
파일 포맷에 들어가는 단어들이 있는 것을 볼 수 있는데 파일 시그니처가 없는 것을 알 수 있다.
PNG
파일 시그니처는 89 50 4E 47 0D 0A 1A 0A
이다.
파일 시그니처를 올바르게 집어넣고 다시 이미지를 열어보면 플래그와 함께 원본 이미지를 얻을 수 있다.
CYBERGON_CTF2024{y0u_g07_7h3_r!gh7_s1gn5}
CYRPTO
RSA1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# crypto.py
from Crypto.Util.number import getPrime, bytes_to_long
from math import gcd
flag = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
FLAG = flag.encode()
out = open('output.txt', 'w')
rsa_q = getPrime(512)
rsa_p = getPrime(512)
n = rsa_q * rsa_p
exp1 = 0x10003 #65539
exp2 = 0x10001 #65537
assert gcd(exp1, exp2) == 1
assert gcd(exp1, n) == 1
assert gcd(exp2, n) == 1
def encryption(plaintext):
cip1 = pow(plaintext, exp1, n)
cip2 = pow(plaintext, exp2, n)
return (cip1, cip2)
cip1, cip2 = encryption(bytes_to_long(FLAG))
out.write("n = "+ str(n)+ "\ncip1 = "+ str(cip1)+ "\ncip2 = "+str(cip2))
out.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from Crypto.Util.number import inverse, long_to_bytes
n = 157508528276758767638734754424621334466394815259243977959210580239577661657714722726225362774231543920376913579658052494826650164280151836289734452590647102313381584133512835595817708427222746495824286741840967127393187086028742577763080469063534742728547285121808241078515099307495843605080694383425986909029
cip1 = 69950256754119187070741220414057295159525964023691737870808579797990094306696842507546591858691032981385348052406246203530192324935867616305070637936848926878022662082401090988631324024964630729510728043900454511012552105883413265919300434674823577232105833994040714469215427142851489025266027204415434792116
cip2 = 26975575766224799967239054937673125413993489249748738598424368718984020839138611191333159231531582854571888911372230794559127658721738810364069579050102089465873134218196672846627352697187584137181503188003597560229078494880917705349140663228281705408967589237626894208542139123054938434957445017636202240137
e1 = 65539
e2 = 65537
def extended_gcd(a, b):
if b == 0:
return a, 1, 0
g, x1, y1 = extended_gcd(b, a % b)
x = y1
y = x1 - (a // b) * y1
return g, x, y
_, x, y = extended_gcd(e1, e2)
m1 = pow(cip1, x, n)
m2 = pow(cip2, y, n)
m = (m1 * m2) % n
flag = long_to_bytes(m)
print("FLAG:", flag.decode())
CYBERGON_CTF2024{54m3_m0Du1u5!!!!!}
Chill Bro
졸라맨들이 있는 사진이 주어진다.
각 자세와 닮은 알파벳들을 나열하는 건가 싶었는데 하다가 포기했다..
2023 CyberGon CTF 라이트업 읽어보는데 dCode 사이트에 굉장히 많은 기호 Cipher 종류가 있길래 거기서 한번 찾아봤다.
Dancing Men Decoder를 찾아냈고 거기에 돌려서 플래그를 얻었다.
CYBERGON_CTF2024{TAKEABREAKBROLETSDANCE}
Reconnaissance
Secure Life
certificate.der
파일이 주어진다.
처음 보는 파일 포맷이라 뭔가 했는데 인증서 파일이다.
그냥 윈도우에서 더블 클릭으로 열어도 만료일시가 나오긴 한다.
문제 풀 때는 당연히 안 되겠거니 하고 그냥 사이트에서 돌렸다.
CYBERGON_CTF2024{2039:11:24:20:38:00}
엄청 오랜만에 CTF 풀어봤다
반수하다 오니까 감이 다 뒤진 것 같다;;
괜히 했나.. 1년간 변화가 없다
웹이고 포렌식이고 분야도 다양하고 문제도 되게 많아서 많이 시도해봤는데 될 것 같으면서도 안 되는게 많았다
결국 하나도 못 풀었는데 끝나고 디코에서 사람들 하는 얘기 들어보니까 너무 허무하게 풀리는 것들이었다
대부분 플래그 얻기 바로 전 단계에서 막혀서 좀 아쉬웠다