Writeup I-Secure CTF 2016 รอบคัดเลือก
วันนี้จะมาเฉลยแต่ละข้อในการแข่งขันรอบคัดเลือก CTF I-SECURE 2016 นะครับ จะพยายามเฉลยให้มากที่สุดเท่าที่ทำ+จำได้ แต่เนื่องจาก ณ เวลาที่ผมเขียนบล็อกนี้ ก็ผ่านการแข่งมาหลายวัน เซิฟเวอร์ปิดไปเรียบร้อยแล้ว ดังนั้นเฉลยส่วนมากจะเป็นเรื่อง Reverse Engineering, Cryptography, Forensics เท่าที่ผมได้ดาวน์โหลดไฟล์เก็บไว้นะครับ ส่วนหัวข้ออื่น จะพูดถึงวิธีทำอย่างเดียวครับผม
Reverse Engineering 2 [10 points]
โจทย์ให้ไฟล์ jar มา เราก็จะมา decompile กัน ผมเลือกใช้ tool ที่มีชื่อว่า jd-gui ซึ่งจะทำให้เราสามารถดู source code ของไฟล์ “.class” ได้ พอเอาไฟล์ที่โจทย์มา decompile ก็จะเจอ flag
Tictactoe [10 points]
เล่นไปเรื่อยๆ เดี่ยวก็ชนะเอง ชนะแล้ว Flag จะออกมาให้เห็น
GGEZ [10 points]
เป็นข้อที่ต้อง brute force เพื่อให้ได้ flag มา
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('128.199.124.15',7777))
while True:
a,b = s.recv(1024),s.recv(1024)
print a
print b
str = "!#$%&()+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi_jklmnopqrstuv*wxyz{|}~"
i=0
try :
while True:
s.send(str[i])
boo = s.recv(1024)
guest = s.recv(1024)
if 'Boo' in boo:
i= (i+1)%88
else:
print boo
print guest
pwd+=str[i]
print 'Passwod now : '+pwd
i=0
except:
print 'Password is '+pwd
exit(0)
Look at the picture [10 points]
ข้อนี้เป็นข้อแรกที่เรา submit กันครับ
$ strings xnyv.png
มี output ท้ายสุดเป็น
secret.txtUT
VGhlX0YxQGdfMXNfRUBzeV9NM3RoMGQ=
secret.txtUT
พอเดาได้ว่าข้อความระหว่าง secret.txtUT น่าจะเป็น encoded flag และจากการที่มีเครื่องหมาย = ลงท้าย ทำให้พอเดาได้ว่าน่าจะเป็น base64 ก็ทำการ decode base 64 จะได้ flag ออกมา
Look at the shell [30 points]
ข้อนี้ผมไม่มั่นใจว่าทางผู้ตั้งโจทย์ตั้งใจให้ใช้วิธีนี้รึเปล่า เพราะดูแล้ววิธีที่ได้ Flag มานั้น ง่ายกว่าข้อที่แล้วที่เป็นข้อ 10 คะแนน ! แต่คะแนนข้อนี้ 30 คะแนน !!
[update] ทางผู้จัดงานแจ้งมาแล้วครับว่าข้อนี้ต้อสร้าง Ubuntu profile ขึ้นมา แล้วค่อยอ่านคำสั่งภายในจะเห็น flag ครับ
$ tar -zxvf memdump.tar.gz
$ strings memdump | grep Fl@g
หวังว่าเฉลยอันนี้พอจะมีประโยชน์บ้าง ใครมีความเห็นอะไร มีวิธีทำที่ต่างจากนี้ หรือวิธีของผมมีจุดบกพร่องตรงไหน คอมเมนต์กันเข้ามาได้นะครับผม