STDiO CTF 2022 QUAL [Writeup]
CTF รอบคัดเลือก Online ระยะเวลา 2 วัน (7/10)
สวัสดี ผมกานต์ เล่น CTF เพื่อความสนุก
บทความนี้จะมาแชร์ข้อที่ผมทำได้ โดยงานนี้ทำได้ 7 ข้อครับ 😂
Fast Travel for You
1 — Dark Web Investigation : OSINT
2 — Partial-Knowledge Proof : PROGRAMMING
3 — I’m Web Breaker : WEBSEC
4 — Super Generator : CRYPTO
5 — Packet Sniffer : NETSEC
6 — I’m Code Breaker : CRYPTO
7 — What the Hex : PROGRAMMING
1 — Dark Web Investigation
Category: OSINT
Description: สวัสดี คุณมีเอกสารที่ยังไม่ได้อ่าน 1 ฉบับ message.pdf
เปิดไฟล์ดูจะพบว่ามีสองหน้า แต่หน้าที่สองดันว่างเปล่า โคตรน่าสงสัย
ถ้าลองไฮไลต์ดูก็จะพบว่ามีข้อความอยู่แอบอยู่นี่เอง
โดยในข้อความจะประมาณว่าอยากให้เราช่วยหาเบาะแส cybercriminal ให้หน่อยและแนบลิงค์ด้านล่างนี้ไว้
Proof: https://www.dropbox.com/s/v2a7nkecdv5vtir/leaker.png?dl=0
(Link Password is hidden in this document’s metadata)
ลิงค์ต้องใช้รหัสผ่านด้วยแต่มีการวงเล็บไว้ว่ารหัสซ่อนอยู่ใน metadata ของเอกสาร
$ exiftool message.pdf
ได้รหัสผ่านมาแล้วคือ h4fxh44dse93yf73
สิ่งที่ได้คือรูป forum ของเว็บไซต์ blackmarket.onion ที่มีการแจกจ่ายข้อมูล database ดังรูปด้านบน แต่เราอะไรไม่ได้เพราะมันเป็นแค่รูป
แต่ก็มาคำใบ้จากผู้จัดงานว่า
ไม่รอช้าเข้าไปหาทันที (ใช้ sherlock หาก็ได้)
https://www.instagram.com/perseus_inwza/
https://twitter.com/perseus_inwza
ที่รู้ว่าใช่คนเดียวกันเพราะว่ามี caption blackmarket.onion อยู่
ทางฟั่ง IG คือแต่ละรูปมีการใส่ข้อความเข้ารหัสไว้ด้วยแต่ว่าลองถอดดูแล้ว ไม่ได้อะไรดีๆเลย แถมโดน rickroll อีกกก
9y7R3oNVrzB9GaoJKvC1po8vAYWyf7TYuPRnqJ2GsWQQg5gLKYyERpkpJF https://www.youtube.com/watch?v=IkxhsTwNybUaHR0cHM6Ly93d3cuaGFja3RoZWJveC5jb20v
https://www.hackthebox.com/aHR0cHM6Ly9oYXZlaWJlZW5wd25lZC5jb20v
https://haveibeenpwned.com/uggcf://gelunpxzr.pbz/
https://tryhackme.com/uggcf://jjj.nepuvir.bet/
https://www.archive.org/uggcf://jjj.lbhghor.pbz/jngpu?i=tDyZZQ8nhZf https://www.youtube.com/watch?v=gQlMMD8auMsaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQ== https://www.youtube.com/watch?v=dQw4w9WgXcQ
ส่วนในด้าน twitter แต่ละเว็บเป็นแค่หน้าเปล่าๆมีแต่คำคมเป็น comment ซะงั้น
แต่ฝั่ง IG จะเห็นได้ว่ามีรูปหนึ่งที่น่าสนใจคือรูปของเว็บ archive.org ที่จะมีการเก็บข้อมูลหน้าเก่าๆของเว็บในอินเทอร์เน็ตไว้ ลองเอา ad9w9rzdkgvzdd9m.p7z.pw/
ไปหาประกฏว่ามีอยู่ด้วยเป็นของวันก่อนงานแข่ง
เลยเอา link ทั้งหมดใน twitter ใส่เข้าไปแล้วหาดูสุดท้ายก็เจอ flag แอบอยู่ใน
https://ad9w9rzdkgvzdd9m.p7z.pw/47952233.html
STDIO2022_1{81dff162533302de81b86988193d0680}
2 — Partial-Knowledge Proof
Category: PROGRAMMING
Description: จากข้อมูลที่ได้รับใน Challenge ที่ 1 หาทางเจาะเข้าสู่ระบบระบบ Criminal Web Portal
ด้วยข้อมูลจากข้อแรก
อีเมล perseus_ (ตัวไอ) nwza_007@blackmarket (ดอท) onion
https://m9sd7kenwo72ji7h (ดอท) p7z (ดอท) pw/nrnxpexdhit4jxsf/login
ทำให้เราได้ email แล้วหน้าเว็บหนึ่งมา
perseus_inwza_007@blackmarket.onion
https://m9sd7kenwo72ji7h.p7z.pw/nrnxpexdhit4jxsf/login
มีข้อสังเกตุคือเราต้องใส่ captcha ด้วยแต่เป็นการคำนวณที่จะเปลี่ยนทุกครั้ง
ตอนแรกผมก็เขียนสคริปล็อคอินด้วยรหัสจาก wordlists รัวๆนะแต่ว่าไม่เวิร์คครับ ทำข้อ 5, 6 เสร็จแล้วมันยังไม่ผ่านเลย5555
ก็เลยตั้งใจอ่าน ajax ที่ใช้ล็อคอินดีๆ
ที่น่าสนใจคือมีการคืนเลข 3 กลับมาด้วยถ้ารหัสใกล้เคียง (แบบมีบางส่วนถูก)
ก็เลยเขียนสคริปใหม่ค่อยๆเดาถ้าเป็นได้เลข 3 ก็ให้เก็บไว้แล้วเดาไปเรื่อยๆ
email: perseus_inwza_007@blackmarket.onion
password: ab4jtiku3r
พอเข้าได้ก็กดเป็น Stop the attack ก็ได้ flag เลยครับ
STDIO2022_2{21e5de79fb74743d65ee8b9340c8dda7}
3 — I’m Web Breaker
Category: WEBSEC
Description: จากข้อมูลที่ได้รับใน Challenge ที่ 2 หาทางเจาะเข้าฐานข้อมูลระบบ Criminal Web Portal เพื่อตามหา Super Generator
ข้อนี้มีคำใบ้ด้วยว่าใช้ SQL injection แบบ union attack และน่าจะใช้ parameter id id ที่เข้าได้ก็มีแค่ 1,2 ก็ติดอยู่นานมาก sqlmap ก็ใช่ไม่ได้ ทางทีมงานก็มีใบ้มาอีกว่า
แต่ก็ยังงงว่าจะแสดงยังไงเลยลอง 'union+select+1234 — +-
ปรากฏว่าแสดงผ่าน comment ใน html นีเอง (ทำไมตอนแรกไม่เห็นว้าา)
ก็เลยลองอ่าน table_name ออกมาก่อนเลยด้วย
'+UNION+SELECT+table_name+FROM+information_schema.tables+WHERE+table_schema=database()--+-
ได้ files, pages ซึ่งดูๆแล้ว pages นี่น่าจะแค่ หน้าแสดงเลยไปดู files ดีกว่า
'+UNION+SELECT+column_name+FROM+information_schema.columns+WHERE+table_name='files'--+-
มีที่น่าสนใจคือ filename กับ data
ลองดึง data ด้วย '+UNION+SELECT+data+FROM+files — +-
ได้ base64
ส่วน filename '+UNION+SELECT+filename+FROM+files — +-
ได้ backup.zip
แปลว่า base64 นี้คือไฟล์ zip ก็เอาไปแปลงเลย base64 to zip
แต่ file ดันมีรหัสอีก
ทำการ crack ด้วยวิธีเดิมๆเลยด้วย john
$ zip2john backup.zip -o hash.john
$ john -w=/usr/share/wordlists/rockyou.txt hash.john
ได้ flag ใน file flag3.txt
pass: waveporinwzaa
ส่วน super_generator.py คือข้อต่อไป
STDIO2022_3{f420bbec3934a9a9861064e13c3c3e13}
4 — Super Generator
Category: CRYPTO
Description: จากข้อมูลที่ได้รับใน Challenge ที่ 3 ทำการวิเคราะห์โปรแกรม Super Generator เพื่อสร้าง Keygen
เป็นการหารหัสมาใส่ในเว็บเดิมจากข้อที่แล้วแต่เป็น id = 2
เอาไฟล์ super_generator.py จากข้อที่แล้วมาแกะๆดู
ดูแล้วตอนแรกก็แปลกทำไมเซ็ค level1 สองครั้งสงสัยเขียนผิด555
โดยผมเริ่มที่ level1 ก่อนเพราะคือส่วนที่เซ็คว่า code ที่ว่าต้องมี pattern อย่างไร สรุปคือ
1111AAAAA-1111A-AAAAAA-1
1 แทนเลขอะไรก็ได้ 0–9
A แทนตัวอักษรอะไรก็ได้ A-Z
และผมจะแบ่งแต่ละช่องว่า code0-code1-code2-code3 นะครับ
แล้วกลับมาดู level0 บอกว่าสี่ตัวแรกต้องเป็นปีของปีค.ศ.นี้ คือ 2022
ได้ว่า 2022AAAAA-1111A-AAAAAA-1
ต่อมา level3 บอกว่า code1 ต้องเป็น 26–0- (‘-’ คือยังไม่รู้) จึงได้ว่า
งานนี้จัดโดย 2600 Thailand งั้นนี่นะจะเป็น 2600- แน่ๆ2022AAAAA-2600X-AAAAAA-1
จาก level4 จะมีการทำ XOR ระหว่าง code0 และ code2
จึงเขียนสคริปมาตรวจดูพบว่าถ้าลอง
code0 เป็น 2022XXXXX
จะได้ code1 เป็น ABCDXX
ลองไปลองมาถ้าใส่ ST หลัง 2022 จะได้ ABCDEF มันดูเข้ากันมากเลย เดาต่อว่ามา ST เหลืออีก 3 ตัวต้องเป็น STDIO แน่ๆ 55555
code0 เป็น 2022STDIO
จะได้ code1 เป็น ABCDEF
ซึ่ง code1 ดูๆแล้วผมแบบ เอออันนี้แหละ
2022STDIO-26001-ABCDEF-1
เหลือ 2 ตัวที่ยังไม่รู้ และเหลือ level2 ที่ยังไม่ถอดรหัส
เลยเขียนสคริปเดาที่เป็นไปได้ออกมา
เอาอันไหนไปใส่ก็ได้ ได้ flag เหมือนกัน
(จริงๆแล้วรหัสในข้อนี้เป็นอะไรก็ได้แค่ต้องผ่าน pattern level ทั้งหมดก็พอครับ เพราะงั้นที่ผมทำแบบเดาๆก็เลยถูกด้วย5555)
STDIO2022_4{6fe1ae3aef6f18a202809611ab8710ff}
5 — Packet Sniffer
Category: NETSEC
Description: สายลับของเราได้แอบเข้าไป ดักข้อมูลระดับเครือข่าย ของกลุ่มแฮกเกอร์ต่างชาติ ที่มากบดานแถว พระราม 9 แต่ระหว่างขี่จักรยานกลับศูนย์บัญชาการ มีกลุ่มก่อการร้ายที่สนับสนุนแฮกเกอร์ดังกล่าว ดักทำร้ายสายลับของทำให้เราจนอาการโคม่า ทำให้ศูนย์บัญชาการของเราไม่สามารถถอดรหัสข้อมูลภายในได้ คุณได้รับมอบหมายภารกิจให้ ถอดรหัสข้อมูลเครือข่ายไร้สายที่ถูกเก็บในไฟล์ singlegateway.pcap และวิเคราะห์หาข้อมูลที่น่าจะทำให้ทางศูนย์บัญชาการสามารถ ตามจับกลุ่มแฮกเกอร์ดังกล่าวได้
singlegateway.pcap
เปิดด้วย wireshark แล้ว ดูเหมือนว่าจะมีการใช้ wifi IEE802.11 แต่มีการเข้ารหัสไว้ จึงทำการถอดรหัสด้วย aircrack-ng
$ aircrack-ng -z -w /usr/share/wordlists/rockyou.txt singlegateway.pcap
โดยเลือกตัวที่ชื่อว่า LongCatCoffee
ได้รหัสผ่านคือ shabbashabba
เพื่อให้ wireshark อ่านได้ให้นำรหัสผ่านไปใส่ใน peference (decryption keys) IEE802.11
แล้วหาไปเรื่อยๆ ก็พบข้อมูลหน้าเว็บหนึ่ง (filter ด้วย tcp.stream eq 6 ก็ได้นะ)
ลงมาหน่อยก็จะเห็น flag
STDIO2022_5{79717d6fef0b5334bbb9a46ecbac22fc}
6 — I’m Code Breaker
Category: CRYPTO
Description: ต้องผ่าน Challenge 5 ก่อน
จากข้อที่แล้วเราจะได้หน้าเว็บมาหน้าหนึ่งลองสร้างเป็น .html จะเห้นได้ว่าให้เดา Secret
และถ้าอ่านโค้ดในเว็บจะเอารหัสที่ใส่เข้าไปแฮชด้วย sha256 ทีละตัวแล้วเอามาเทียบว่าเท่ากับที่กำหนดไหมถ้าใช่คือรหัสนี้ถูกต้อง
ซึ่งมันคือแฮช One-way function ผมเลยใช้วิธีเดาแทนโดยการเอาตัวอักษรที่เป็นไปได้มาลองแฮชดูว่าเท่ากันไหมกับตำแหน่งเดียวกันใน array p ถ้าใช่ก็เอาตัวนั้นแล้วทำไปเรื่อยๆจนครับ 94 ตัว (เป็นความยาวของ p)
ได้ secret ออกมาคือ
STDIO2022_6{21cdd536dff599a164dc0bba9b46c294} http://ce7pm7y9vm4p9i9k.p7z.pw/7o2whx2nexxb2k94/
STDIO2022_6{21cdd536dff599a164dc0bba9b46c294}
7 — What the Hex
Category: PROGRAMMING
Description: ต้องผ่าน Challenge 6 ก่อน
เข้าเว็บที่ได้จากข้อที่แล้ว http://ce7pm7y9vm4p9i9k.p7z.pw/7o2whx2nexxb2k94/
แต่ลอง view page source พบว่ามีการแนบลิงค์ภาพด้านล่างไว้
หมายความว่า MD5 สองครั้งจะได้ bfe87b627465bf1d09e1b95cf4995eXX
ผมลองเขียนสคริปมาสุ่ม Hex ที่เป็นไปได้สองตัวสุดท้าย
แต่จริงๆไม่ต้องก็ได้โยนเข้าไปใน crackstation.net เลย
ได้ว่า
username: admin
password: z,iyd86I
STDIO2022_7{d5c1f14942fd5abc95073dfc09a03421}
ข้อแปดเกี่ยวกับการเกะเข้าไปดูใน .apk ซึ่งผมไม่รู้จะทำยังไง 😭
เลยพอแค่นี้ครับ ถ้าใครได้บอกผมหน่อย ติดใจมากๆ ขอบคุณครับ55555