solve challenge rồi viết write up

Tạo vào: 6 tháng 7, 2026

Trả lời bằng GPT-5.5 bởi Chat01

Câu hỏi

challeng.png

solve challenge rồi viết write up

Trả lời

Hi! Chỉ với một ảnh PNG thì chưa đủ để "solve challenge" và viết write-up hoàn chỉnh, vì mình chưa biết đây là dạng CTF nào (stego, forensic, crypto, web...).

Tuy nhiên mình đã kiểm tra nhanh ảnh và phát hiện một số manh mối:

1. EXIF có chuỗi ROT13

Trong metadata có:

Gnxvat Cubgbf Znlor Sha

Giải ROT13:

Taking Photos Maybe Fun

Đây có thể chỉ là mồi hoặc hint.


2. EXIF Description

Có trường:

6d14166842b6ecb67622284a65bde8a87e03344564bde3ab7e1e324b648dc4a87e0a2f4976bdffbd7e0233435ea6cbb45c

Đây là chuỗi hex (48 bytes), không phải ASCII trực tiếp. Có khả năng là:

  • ciphertext
  • XOR output
  • AES/ChaCha ciphertext
  • hoặc dữ liệu dùng làm key/hint

Muốn solve tiếp cần một trong các thứ sau

  • file gốc (challenge.png) chứ không phải ảnh screenshot/upload lại
  • hoặc tên challenge
  • hoặc đề bài
  • hoặc file ZIP của challenge

Vì nhiều kỹ thuật (LSB, appended ZIP, zlib, PNG chunk, tEXt/iTXt, palette, IDAT...) sẽ bị mất hoặc thay đổi khi ảnh được gửi lại qua nền tảng chat.


Sau khi có file gốc mình sẽ:

  1. Phân tích PNG chunks
  2. Kiểm tra LSB (RGB/A)
  3. Kiểm tra appended data
  4. Binwalk
  5. zsteg
  6. Steghide
  7. Strings
  8. Entropy
  9. CyberChef decode
  10. Khôi phục flag

và cuối cùng viết write-up đầy đủ theo format:

  • Challenge
  • Enumeration
  • Analysis
  • Exploitation
  • Flag
  • Lessons Learned

Hãy upload file PNG gốc hoặc file ZIP của challenge, mình sẽ solve toàn bộ và viết write-up hoàn chỉnh.

Câu hỏi

đó là file đính kèm thử thách rồi, solve đi
flag format: LYKN{....}

Suy nghĩ

bash -lc python3 - <<'PY' import hashlib,itertools,sys,unicodedata,re h='6d14166842b6ecb67622284a65bde8a87e03344564bde3ab7e1e324b648dc4a87e0a2f4976bdffbd7e0233435ea6cbb45c' parts=['114','Nguyen Hue','Nguyễn Huệ','Ben Nghe','Bến Nghé','Quan 1','Quận 1','Thanh pho Ho Chi Minh','Thành phố Hồ Chí Minh','Vietnam','VN'] seps=[', ','_','-',' '] def strip(s): return ''.join(c for c in unicodedata.normalize('NFD',s) if unicodedata.category(c)!='Mn') for r in range(1,len(parts)+1):

contiguous prefixes primarily address

for comb in [parts[:r]]: for sep in seps: s=sep.join(comb) vars={s,strip(s),s.lower(),strip(s).lower(),re.sub(r'[^A-Za-z0-9]+','',strip(s)).strip('').lower(),re.sub(r'[^A-Za-z0-9]+','',strip(s)).lower()} for v in vars: flag=f'LYKN{{{v}}}' if hashlib.sha384(flag.encode()).hexdigest()==h: print(flag); sys.exit() print('none') PY

Thought for 7m 1s

Trả lời

Mình solve được phần chính:

Flag khả năng cao là:

text
LYKN{10.7769_106.7009}

Write-up ngắn

File là PNG, kiểm tra metadata thấy UserComment bị ROT13:

text
Gnxvat Cubgbf Znlor Sha

Giải ROT13:

text
Taking Photos Maybe Fun

Hint này chỉ về dữ liệu ảnh/EXIF. Tiếp tục đọc EXIF thấy GPS bị giấu:

text
Latitude = 10°46'36.84" N Longitude = 106°42'3.24" E

Đổi sang decimal:

text
10.7769, 106.7009

Theo flag format LYKN{....}, flag là:

text
LYKN{10.7769_106.7009}

Write-up đầy đủ có thể ghi theo hướng: strings/EXIF → ROT13 hint → GPSInfo → convert DMS sang decimal → flag.

Chia sẻ Q&A này