[Google CTF] – BNV

Link soal: https://bnv.web.ctfcompetition.com

Diberikan soal sebagai berikut

Kita mencoba untuk melakukan submit dan tanggapan dari server adalah

Lalu kita mencoba untuk melakukan intercept dengan menggunakan bantuan Burp Suite. Sebelumnya, kita mengganti url tersebut menggunakan “http” agar kita bisa menginterceptnya

Kita menemukan {“message”:”135601360123502401401250″} yang dalam bentuk JSON dengan key nya message dan value nya 135601360123502401401250

Value itu disesuaikan dengan nama-nama city yang ada di website tersebut. Jika kita mengganti value tersebut, maka response yang diberikan dari server adalah “No result found”

Kita mencoba untuk mencari vulnerable-vulnerable yang berkaitan dengan JSON dan kita menemukan website-website yang berguna untuk membantu kita dalam pengerjaan soal ini.

Link tersebut antara lain:

Link-link di atas semuanya menjelaskan tentang adanya XXE bug dengan cara menconvert JSON request ke XML request

Langkah awal yang kita lakukan adalah mengganti Content-type nya menjadi XML dan mencoba untuk menambahkan <?xml version=”1.0″ ?>

Dapat kita lihat bahwa ada error XML “Start tag expected, ‘<‘ not found, line 1, column 23”. Di sini kita bisa mengetahui bahwa kita bisa menggunakan XML di server tersebut dan di proses oleh si server.

Setelah kita mengetahui hal tersebut, langkah selanjutnya yang kita lakukan adalah mencari file local dtd di server tersebut. Kita menemukan link https://mohemiv.com/all/exploiting-xxe-with-local-dtd-files/ yang berisikan tentang payload yang dapat kita gunakan untuk mengexploit XXE dengan menggunakan local dtd file

Kita menggunakan file local dtd ini untuk mentrigger error message agar server menampilkan file-file nya melalui error message yang ditampilkan oleh si server ini

Ketika kita mencoba untuk menggunakan payload tersebut, server memberikan respon

Kita tidak berhasil untuk menemukan local file dtd nya, sehingga kita mencoba untuk membaca bagian bawah dari link yang sudah kita cantumkan tadi, ada terdapat cara kita untuk menemukan local dtd file di server tersebut

/usr/share/yelp/dtd/docbookx.dtd di sini berisikan entity-entity yang dapat kita overwrite

Ketika docbookx.dtd tersebut kita buka, kita bisa lihat terdapat banyak entity-entity yang berbentuk sebagai berikut

Lalu kita mencoba untuk menggunakan payload tersebut dan menggabungkannya dengan payload yang sudah kita coba masukkan sebelumnya

Pada bagian “Your DTD Code” kita menggantikannya dengan payload yang ada di bagian awal tadi

Kita berhasil masuk dan mendapatkan file-file yang ada di server tersebut di bagian /etc/passwd nya

Lalu kita mencoba untuk mencari flagnya dengan mengganti etc/passwd menjadi flag

Dan kita mendapatkan flagnya

Flag: CTF{0x1033_75008_1004x0}

Leave a Reply

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