[Joints 2021 Qualification] – whitebox

Diberikan sebuah web, dimana pada halaman awal kita diberikan source code dengan bahasa PHP

Disitu saya memiliki ide, pada $_GET[‘echo’], saya akan looping karakter-karakter dari string payload saya, sedangkan pada $_GET[‘echo1’], saya akan masukkan >p atau >>p , dimana >p untuk redirect output ke file p, dan >>p untuk append output ke file p. Setelah itu, execute script dari p dengan $_GET[‘sh’]. Buat endpoint yang dapat capture http request di https://requestbin.com/, lalu saya buat python script seperti dibawah untuk melihat isi dari directory /tmp. Awalnya, saya gunakan command ls -a dan simpan output ke /tmp/p. Lalu, kirim file /tmp/p ke requestbin menggunakan curl

Jalankan python dan bash script. Setelah itu akses http://34.87.190.141:4000/?sh=p supaya file p otomatis terexecute :

Akes requestbin, disitu request berhasil tercapture. File dari flag ternyata benar berada di /tmp

Ganti script menjadi seperti dibawah untuk kirim file /tmp/flag ke requestbin :

Jalankan kembali python dan bash script. Setelah itu akses http://34.87.190.141:4000/?sh=p supaya file p otomatis terexecute :

Setelah itu request berhasil tercapture oleh requestbin dan saya berhasil memperoleh flag :

Flag : JOINTS21{f9441d99e84fec3543cb056f386dc65b}

Leave a Reply

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