[HackTheBox] – Micro Storage

Micro Storage
Easy โ€“ Misc
By SlothSpider

Challenge Deskripsi

Some group of people seem to have made a network service that lets you store files temporarily. But little did they know about the mistake they made coding their script… Try to get familiar with their service and discover the vulnerability behind it. Your goal is to leak the contents of /๐—ณ๐—น๐—ฎ๐—ด.๐˜๐˜…๐˜.

Initial

Di sini, saya mendapatkan IP sebagai berikut: 46.101.23.188:31894

Di sini, saya mencoba mengakses IP tersebut melalui website dan terlihat โ€œrusakโ€. Saya juga mencoba melakukan Nmap dan tidak menemukan informasi yang banyak. Akhirnya, saya menggunakan netcat untuk melakukan interaksi dengan IP tersebut.

Dari netcat, saya dapat melakukan upload file, melihat file yang sudah di upload, menghapus file, mengeluarkan isi file, dan mengunduh semua file yang sudah di compress.

Setelah mencoba-coba melakukan beberapa aktivitas, terdapat sesuatu yang menarik. Ketika saya memilih opsi โ€œ1โ€ untuk mengupload file, kita diminta untuk melakukan input nama file.

Ketika saya mencoba memasukkan karakter seperti โ€œ!โ€œ, โ€œ@โ€œ, โ€œ#โ€œ, โ€œ$โ€, kita akan diberi alert dan program akan exit.

Namun, saya menemukan bahwa kita bisa memasukkan karakter โ€œ.โ€œ dan โ€œ=โ€.

Di sini, saya juga mencoba menggunakan opsi 5 โ€œ5 => Compress and download all your filesโ€. Kita akan diberikan sebuah string base64.

Di sini, saya mencoba untuk melakukan decode base64 dan menjadikannya sebagai tar file dan kita dapatkan file tar yang berisi file kita (Figure 1).

Figure_1

Di sini, saya melihat sebuah string yang menarik pada opsi ke-lima.

Ketika melihat pada bagian ini dan mengetahui bahwa โ€œsemuaโ€ file akan di kompres menggunakan tar. Ketika melakukan proses kompres ini, program kemungkinan besar akan menggunakan tanda asterik (wildcard (*)). Dari penggunaan wildcard ini, terdapat sebuah vulnerability yang mungkin saja bisa kita gunakan (lihat ini).

Exploit

Untuk melakukan exploit, saya membuat 3 buah file. Pertama adalah sebuah file dengan nama โ€œ–checkpoint=1โ€ yang saya isi dengan sembarang karakter.

Kemudian, saya membuat file kedua bernama “–checkpoint-action=exec=sh x.sh” yang saya isi dengan sembarang nilai juga.

Kemudian saya membuat file ketiga bernama โ€œx.shโ€ dengan isi sebagai berikut.

File pertama, yang dianggap sebagai command, (–checkpoint=1) digunakan untuk menentukan setiap berapa file kita akan menjalankan command pada file kedua (–checkpoint-action=exec=sh x.sh). Nama file sekaligus command kedua ini (–checkpoint-action=exec=sh x.sh) digunakan untuk melakukan eksekusi โ€œsh x.shโ€ (/bin/sh x.sh) setiap mencapai checkpoint. Sedangkan file ketiga (x.sh) digunakan untuk memuat script yang akan dijalankan untuk melihat isi dari file /flag.txt.

Kita pilih menu 5 dan didapatkan flag kita.

Kita dapatkan flag HTB{@bus1Ng_gTf0_b1N$_c4n_b3_fUn_s0m3t1meS__r1g|-|t??!!__c4fdecf8}.

Leave a Reply

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