91 words
1 minute
TCTT25 Crypto: AdvancedStringsSecret

Advanced Strings Secret (100 pts) - Cryptography Write-up#

โจทย์#

วัตถุประสงค์ของการเข้ารหัสลับคือต้องมีเฉพาะผู้รับและผู้ส่งเท่านั้นที่เข้าใจรหัสลับนั้นได้ แต่คนส่วนใหญ่มักใช้วิธีการเดากระบวนการเข้ารหัสลับเพื่อใช้ในการถอดรหัส ข้อความลับในโจทย์ข้อนี้ก็เช่นกัน จงใช้ทักษะพื้นฐานของการถอดรหัสนั่นคือการ “เดา” เพื่อค้นหา Flag ที่คุณต้องการ

หมายเหตุ รูปแบบของ Flag ที่เป็นคำตอบของข้อนี้คือ flag{message_10digits}


ดาวน์โหลดไฟล์#

ไฟล์ดาวน์โหลด
All Files📦 GitHub Folder

ข้อสังเกต#

  1. ชุดอักขระที่ใช้กว้างมาก เมื่อใช้ CyberChef พบ Magic Wand แปลงจาก Base85

  2. หลังถอด Base85 แล้วได้สตริงใหม่ที่อักขระจำกัดอยู่ในเซต [0-9 A-Z $%*+-.:/] สามารถเดาได้ว่านี่เป็น ลักษณะของ Base45 (https://datatracker.ietf.org/doc/rfc9285/)

  3. เมื่อถอด Base45 ได้ข้อความ/โค้ดที่เต็มไปด้วยสัญลักษณ์ประหลาด ๆ เช่น =< )? ;+ ฯลฯ ซึ่งตรงกับเอกลักษณ์ของ Malbolge (ภาษา esolang)


แนวคิดการแก้โจทย์#

  1. ตรวจสอบลักษณะของ ciphertext สามารถใช้ CyberChef ถอดรหัสได้จาก Base85
  2. ถอดจาก Base85 ได้ข้อความที่เป็น Base45
  3. ถอดจาก Base45 ได้โค้ด Malbolge
  4. นำโค้ด Malbolge ไป execute ด้วย interpreter จะทำให้ได้ Flag

Base85 to Base45

Malbolge Execution


ผลลัพธ์#

เมื่อนำโค้ด Malbolge ไป execute ด้วย interpreter จะได้ Flag:

flag{If_Y0u_Kn0w_Y07_Know_7453980724}

เครดิต#

แนวคิดจากคุณ รอลงอาญา (คุณ nack) และ ทีม PoE (คุณ Sirati)

Writeup by netw0rk7 | Original Repo

TCTT25 Crypto: AdvancedStringsSecret
https://blog.lukkid.dev/posts/tctt25-crypto-advancedstringssecret/
Author
LUKKID
Published at
2025-12-13
License
CC BY-NC-SA 4.0