Wednesday, June 14, 2017

Write Up CTF SlashRoot - EZip

June 14, 2017




EZip (50pts) 

Encrypt and ZIP
9adf5c855fdf8f5c39962e5785fb2205

Deskripsi

Peserta di beri sebuah file zip yang berisi file sebagai berikut:
Archive:  EZip.zip
  inflating: EZip.py                 
  inflating: flag.txt.EZip

File EZip.py merupakan script yang telah mengenkripsi file flag.txt menjadi flag.txt.EZip dilihat dari extensinya.


Penyelesaian

Analisa fungsi ez yang berisi script sebagai berikut.
def ez(file):
    with open(file, 'r') as x, gzip.open(file + ".EZip", 'w') as y:
        y.write(compress(x.read()))
Dilihat fungsi ini file inputan kita akan di open dan simpan ke dalam variable x, juga mengopen file inputan kita dengan menambah ektensi .EZip di simpan ke dalam variable y. Kemudian file inputan kita di baca dan di compress.

Analisa fungsi compress yang berisi script sebagai berikut.
def compress(str):
return press(zlib.compress(str))

Di fungsi ini dilakukan proses zlib compress kemudian di lakukan proses press.

Analisa fungsi press 

def press(str):
    z = chr(ord(str[0]) ^ ord('E'))
    for x, y in enumerate(str[1:]):
        z += chr(ord(y) ^ ord(str[x]))
return z

Di fungsi ini terjadi proses yang sebenarnya, char pertama dari hasil zlib.compress yang terjadi di fungsi compress akan di xor dengan E dan di simpan ke variable z. Kemudian str kecuali index pertama di enumerate menghasilkan x sebagai index ( ingat ini terkecuali str index pertama jadi mulai lagi dari 0) dan y sebagai value. Nilai y di xor dengan str[x] dan disimpan tambahkan ke variable z. Untuk melakukan dekripsi pesan kita harus membalikan langkah-langkah ini secara tepat. Proses dekripsi pertama kita open file yang terenkripsi dengan gzip kemudian kita lakukan kebalikan darip fungsi press ya itu dengan melakukan xor char pertama dari str dan kemudian melakukan proses xor dengan enumerate str kecuali index pertama dan tahapan terakhir melakukan proses zlib decompress. Script dekrip EZip sebagai berikut.

Flag dari soal ini adalah SlashRootCTF{4123_y0u_12ea11y_123411y_R34LLY_n33d_c0mp12355_p123ss_pr3ss_p12E55}



Written by

aringan komputer (jaringan) adalah sebuah sistem yang terdiri atas dua komputer atau lebih yang didesain untuk dapat berbagi sumber daya ...

0 comments:

 

© 2015 Learning Basic Network. All rights resevered. Designed by Templateism

Back To Top