[Cyber Jawara 2020 Qualification] – Home Folder


Pada soal ini diberikan zip archive yang berisi direktori home linux pada umumnya.

Pada direktori tersebut, terdapat beberapa file yang bisa menuntun kita pada flag:

  • .bash_history: Menyimpan command-command yang pernah di eksekusi
  • flag.zip: Berisi flag.txt
  • pass.txt: Berisi password untuk zip file

Hal pertama yang kami coba adalah langsung menggunakan isi file pass.txt untuk melakukan unzip terhadap flag.zip, namun gagal.

Karena gagal, kami pun berpikir bahwa konten dari pass.txt ini sudah dirubah. Berikutnya, kami coba membuka file .bash_history untuk mencari tahu tentang command apa saja yang pernah dieksekusi. Berikut isi dari file .bash_history:

Terlihat bahwa setelah mengisi file pass.txt dan melakukan zip pada file flag.txt, dilakukan command truncate pada file pass.txt dengan command truncate -s -2 pass.txt

Command tersebut memiliki fungsi sebagai berikut:

Jadi, command yang dijalankan pada file pass.txt akan membuang 2 bytes paling belakang dari file. Untuk memastikan, kami pun mencoba melakukan truncate pada file dummy:

Dari string CJ2020, setelah di truncate hanya menjadi CJ202 bukan CJ20. Hal ini dikarenakan byte terakhir pada file adalah newline \n atau 0xa. Sehingga dari string yang terlihat hanya 1 huruf saja yang terpotong.

Dari situ, kami membuat script untuk bruteforce 1 huruf yang hilang dari pass.txt untuk unzip file flag.zip. Berikut script yang digunakan:

Dan didapatkan password sebagai berikut:

Terakhir, tinggal membuka flag.txt untuk mendapatkan flag.

Flag = CJ2020{just_to_check_if_you_are_familiar_with_linux_or_not}

Leave a Reply

Your email address will not be published. Required fields are marked *