SWU Capture the Flag Competition 2025 Writeup (Round 1)
งานแข่งนี้ผมสมัครเพราะเวลาแข่งมันใกล้มาก ผมไม่ได้แข่ง CTF นานแล้ว เลยถือว่าเป็นการวอร์มอัพ ชิวๆ เพราะในประกาศรับสมัคร ผมไม่เห็นว่ามีเงินรางวัล เลยคิดว่าเป็นงานที่ชิวๆ
คนตึงๆ ไม่น่ามากันหรอกมั่ง แต่พออ่านรายละเอียดในกลุ่ม Line และ ดูชื่อทีม ชื่อมหาวิทยาลัย แต่ละคน ahhhhhh “That time, I knew it — I fucked up.” แต่ละคนตึงๆ ทั้งนั้น :< มีวงในกันเหรอ wa เลยรู้ว่างานนี้มีเงินรางวัล หรือแค่ว่างกันเฉยๆ
เอาละเกริ่นนำซะนาน มาเริ่มกันเถอะ

โจทย์ทั้งหมดที่ผม solve ได้
Binary Exploitation (Pwn)
Cryptography
- Agent 172
Forensics
- Slack Space
- Dear Brute…
Miscellaneous
- Game of Colors
- u-i-i-io-i-ii-a-io
Mobile Application
Network
- อดทนจนกว่าจะได้ flag
Web Application
- Find me!
- Break In and Find the Secrets
Agent 172

เราได้ข้อความแปลกๆ มา
Thw[WaJ`[LaHt[EcAjP536โยนเข้า CyberChef แล้วโยน magic เข้าไป และเปิด Intensive Mode

เลื่อนๆ ไปเราก็เจอกับ

แต่โจทย์บอกว่าใช้ MD5 เพราะงั้นโยน MD5 ไปเพิ่ม

swu{9f6ac258d55d2d6f54e41a91c6aa3846}Slack Space

เราได้ไฟล์ diskCTF.img มา
ลอง cat ออกมา ได้ประโยคบางอย่างมา ลอง find flag format

swu{Welc0me-t0-F0rens1cs-W0rld}Dear Brute…

เราได้ไฟล์ Dear-Tom.zip มา ลอง unzip ออกมา

เราจะได้ไฟล์ log.zip ที่ติด password กับ Message.zip ที่ไม่มี password
แตกไฟล์ Message.zip จะได้ secret.txt ที่เป็น wordlist

ใช้ fcrackzip brute-force
fcrackzip -v -D -p ./secret.txt ./../log.zip
ได้ password มาแล้ว
P@$$w0rdเอาไป unzip และเราจะได้ auth.log เราจึงลอง cat ดูว่ามันคืออะไร

จะเห็นว่ามันคือ log อะไรบางอย่าง โจทย๋บอกว่า รวมถึงพวกเขาได้ข้อมูลอะไรไปบ้าง ผมจึงลอง grep “swu{” ที่เป็น flag format ดู

หะ? log บ้าอะไรเก็บ password wtf
ช่างมันละกัน
swu{3407244cd1c7365c28e6afa3d5ba2ade}Game of Colors

เราได้ไฟล์ Game_of_Thrones.pdf
ลอง Ctrl A ดู

Um Classic
swu{Don’t_Angry_Just_TakeItEasy}u-i-i-io-i-ii-a-io
เราได้ไฟล์ u_i_i_io_i_ii_a_io.wav ที่เป็นเสียงแมวอุอิอา เสียงเร็ว ช้าสลับกัน เสียงสูงให้เป็น… ไม่เกี่ยว! ;-; (ข้อนี้ต้องเปิด hint เพราะมัวแต่อยู่กับจังหวะเสียง :<)
เพราะสิ่งเราต้องทำจริงคือใช้ Sonic Visualiser
Add Waveform กับ Spectrogram

แล้ว zoom ไปด้านล่าง เราจะเห็น flag

swu{5a89eb46246eb29f3d494c3f05b4db21}อดทนจนกว่าจะได้ flag

เราได้ไฟล์ Network_Medium.pcapng มา ให้เปิดด้วย wireshark แล้วไปที่ File -> Export Objects -> HTTP

save all ที่โฟลเดอร์ที่เราต้องการ

เราจะได้ไฟล์ png ที่ดูยังไงก็ base64 ที่แยกกันอยู่ ให้เราแคปรูปแล้วโยนเข้า Search any image with Lens

ก๊อปข้อความ

แล้วโยนเข้า CyberChef โดยใส่ From Base64

swu{023ac28ff08c68e572861ca7b3bebbf0}Find me!

เราได้เว็บหนึ่งมา ลองเข้าไป

ลอง view-source ดู view-source:http://ctfswu-2025.com:54321/ และ find swu ดู

Um Classic~
swu{We1c0m3_t0_W3b_Applicati0n_Cha113ng3s}Break In and Find the Secrets

เราได้เว็บหนึ่งมา

ลอง view-source ดู

เราจะเห็น title เขียนไว้ว่า 8.1.0-dev ลองเอาไป search

จะเจอว่า ใน php version 8.1.0-dev มี backdoor ที่สามารถ RCE ได้ เราจึงลองบ้าง ด้วย burp suite
Proxy -> เปิด Intercept และ Open browser แล้วเข้าเว็บ แล้วคลิ๊กขวาที่ Request ที่โผล่มา แล้ว Send to Repeater แล้วปิด Intercept

ไปที่ Tab Repeater แล้วเพิ่ม User-Agentt: zerodiumsystem(“id”); เหมือนใน writeup คนอื่น

อ่าวได้ไง โดนเกียน 😭😭😭
ลองอะไรแปลกๆ อย่างการใช้ User-Agentt: zerodiumsystem($_GET["cmd"]); กับ ?cmd=ls แทน

work ได้ไงวะนั้น
nvm ทำต่อให้เสร็จ
ด้วยการ ls เรื่อยๆ จนกว่าหาที่ flag อยู่เจอ (encode url ด้วย CyberChef)
ถ้าเจอแล้วให้ cat ออกมา

swu{3407244cd1c7365c28e6afa3d5ba2ade}บ่นท้าย writeup
จบบบบ ที่เหลือไปอ่านที่ write up ของ noonomyen นะครับ
และก็เป็นอีกงานที่ข้อ upload ไฟล์ผมทำไม่ได้ ;-; มันทำยังไงกันแน่ wa
แข่งรอบที่ 2 ดันทับกับอีกงาน ;-; เอาละ คงต้องใช้วิชาแยกประสาทขั้นเทพ :> แต่ยังไงงานนี้ก็คงไม่น่าหวังเงินรางวัลได้ตัวตึงวงการเต็มไปหมด :< แต่ก็โชคดีที่งานนี้ online ทั้ง 2 รอบ เพราะถ้าเป็น onsite คงเล่นไม่ได้เลย ผมแยกร่างไม่ได้ละนะ~ ว่าแต่มันจะมี moment ที่ทำโจทย์อีกงานแล้วทีมงานมาถามว่าทำข้อไหนอยู่ครับ แล้วผมตอบว่าแบบ “อ๋อกำลังทำโจทย์อีกงานอยู่ครับ” คงดูแปลกๆ ดีแฮะ ไม่ว่าในทางดีหรือแย่