Write Up CTF Java Hackfest 2015: Plain

logo

File soal: download
password: javahackfest0x02
Clue: eScaTdEcoPaInoC

Pada website CTF terdapat clue eScaTdEcoPaInoC yang jika diambil uppercase saja maka hasilnya STEPIC. Stepic bisa berfungsi untuk mengekstrak data dari gambar, Lalu saya mencoba ekstrak gambar-gambar tersenut dengan perintah :

$ ./stepic-0.4~bzr/stepic -d -i Plain.png > hasil.txt

Maka akan muncul seperti ini dari gambar Plain.png:

0127 0150 105 116 101 32 01101000 0141 0164 040 104 01100001 0143 107 101 114 00100000 97 0144 0141 01001100 0141 104 00100000 105 115 0164 0151 0154 0141 104 040 116 101 6b 6e 6f 6c 6f 0147 0151 040 105 110 01100110 01101111 114 0155 0141 01110011 105 00100000 01100100 01100001 01101100 01100001 01101101 040 98 97 104 97 115 97 040 0111 6e 103 103 114 105 115 040 01111001 01100001 01101110 01100111 00100000 01101101 01100101 01101110 01100111 01100001 01100011 01110101 00100000 01101011 01100101 01110000 01100001 01100100 01100001 00100000 01110000 01100101 01110010 01100101 01110100 01100001 01110011 040 0171 0141 0156 0147 040 0163 0145 0143 0141 0162 0141 040 0145 0164 0151 065 040 6d 101 110 117 110 01001010 0165 0153 0153 0141 0156 040 01110011 01110101 01100001 01110100 01110101 00100000 01101011 01100101 01101100 01100101 01101101 01100001 01101000 01100001 01101110 00100000 01100100 01100001 01101100 01100001 01101101 00100000 01110011 01100101 01100010 01110101 01100001 01101000 00100000 01110011 01101001 01110011 01110100 01100101 01101101 00100000 01101011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 00101110 00100000 87 104 105 116 101 32 104 97 116 32 115 48 101 99 97 114 97 32 117 109 117 109 32 108 101 98 105 104 32 109 101 109 102 111 107 117 115 107 97 110 0141 0153 0163 0151 0156 0171 0141 040 0153 0145 0160 0141 0144 0141 040 0102 0141 0147 0141 0151 0155 0141 0156 0141 040 0155 0145 0154 0151 0156 0144 0165 0156 0147 0151 040 0163 0145 0142 0165 0141 0150 040 0163 061 0163 0164 0145 0155 054 100 105 109 97 110 97 32 66 101 114 116 101 110 116 97 110 103 97 110 32 100 101 110 103 97 110 32 98 108 97 99 107 32 104 97 116 32 121 97 110 103 32 108 101 98 105 104 32 109 101 109 102 111 107 117 115 107 97 110 32 97 107 115 105 110 121 97 32 107 101 112 97 100 97 32 98 97 103 97 49 109 97 110 97 32 109 101 110 101 114 111 98 111 115 32 115 105 115 116 101 109 32 116 101 114 115 101 98 117 116 46 040 01010100 6f 112 117 116 105 104 32 97 116 97 117 32 112 101 114 101 116 97 115 32 112 117 116 105 104 32 97 100 97 108 97 104 32 112 97 104 108 97 119 97 110 32 97 116 97 117 32 48 114 97 110 103 32 98 97 105 107 44 32 0164 0145 0162 0165 0164 0141 0155 0141 040 0144 0141 0154 0141 0155 040 0142 0151 0144 0141 0156 0147 040 0153 0157 0155 0160 0165 0164 0145 0162 054 040 01000100 01101001 01101101 01100001 01101110 01100001 00100000 01101001 01100001 109 101 110 121 101 98 117 116 32 101 116 105 107 97 32 104 97 99 107 101 114 32 97 116 97 117 32 112 101 78 101 116 114 97 115 105 32 112 101 110 103 117 106 105 040 121 97 6e 01100111 0142 0145 0162 0146 0117 0153 0165 0163 040 0160 0141 0144 0141 040 0155 0145 0156 0147 0141 0155 0141 0156 0153 0141 0156 040 0144 0141 0156 040 0155 0145 0154 0111 0156 0144 0165 0156 0147 0151 040 0111 0124 040 0163 0151 0163 0164 0145 0115 056

Soal diatas adalah gabungan dari binary,decimal,hexa dan octal. Daripada berlama-lama untuk melakukan decrypt lebih baik gunakan script python :


#!/usr/bin/python
import sys
import binascii
import string

def loadlist(infile):
 tlist = []
 for line in open(infile,'r'):
 for w in line.split(): tlist.append(w.lower())
 return tlist

# first argument: binary/octal/decimal/hexadecimal input
if len(sys.argv) != 2: sys.exit(2)

words = loadlist(sys.argv[1])
chars = set('abcdef')
msg = ''
for w in words:
 try:
 msg+=binascii.unhexlify('%x' % int(w,2))
 except (ValueError, TypeError) as e:
 if any((c in chars) for c in w):
 msg+=w.decode('hex')
 continue
 if w[0] == '0':
 msg+=chr(string.atoi(w, base=8))
 continue
 msg+=chr(int(w))
print msg

Lalu jalankan :

$ file.py Crypt.txt

Maka kita akan mendapatkan sebuah teks :

White hat hacker adaLah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada peretas yang secara eti5 menunJukkan suatu kelemahan dalam sebuah sistem komputer. White hat s0ecara umum lebih memfokuskanaksinya kepada Bagaimana melindungi sebuah s1stem,dimana Bertentangan dengan black hat yang lebih memfokuskan aksinya kepada baga1mana menerobos sistem tersebut. Toputih atau peretas putih adalah pahlawan atau 0rang baik, terutama dalam bidang komputer, Dimana iamenyebut etika hacker atau peNetrasi penguji yangberfOkus pada mengamankan dan melIndungi IT sisteM.

Dari cerita diatas, saya melakukan seleksi huruf besar dan angka sesuai urutan. Maka kita akan mendapatkan hasil :

flag : WLI5JW0B1B1T0DNOIITM

Sumber: Plain

Leave a Reply