Halo semuanya!
Pada kesempatan kali ini saya ingin berbagi cerita tentang menemukan sebuah celah jenis IDOR atau yang disebut Insecure Direct Object Reference pada layanan Mozilla Monitor.
Sebelumnya kita intip dulu apa sih itu Mozilla Monitor
Mozilla Monitor adalah sebuah platform yang memberikan layanan secara gratis mengenai informasi kebocoran data pada alamat email client tersebut. Tidak hanya memberi informasi mengenai hal tersebut saja, Mozilla Monitor juga memberikan fitur berbayar untuk penghapusan data secara otomatis dan pemantauan secara real-time mengenai informasi pribadi.
Pada saat itu, saya ingin melakukan cek apakah email saya mengalami kebocoran data menggunakan layanan dari Mozilla Monitor tersebut, kemudian saya melakukan registrasi pada website tersebut menggunakan alamat email saya.
Setelah melakukan registrasi, benar saja bahwa alamat email saya mendapatkan informasi bahwa terkena dampak kebocoran data pada beberapa platform. Setelah itu, saya langsung melakukan recovery pada akun email saya dengan mengubah password dan mengikuti beberapa rekomendasi dengan mengaktifkan 2FA.
Sesudahnya itu saya tidak saja melakukan cek pada alamat email, saya juga melakukan explore pada beberapa fitur yang terdapat pada website Mozilla Monitor tersebut…
Setelah saya menghabiskan banyak waktu untuk explore, ada salah satu bagian yang mencuri perhatian saya, yaitu pada bagian Monitoring email address. Pada bagian Monitoring email address sendiri memiliki fitur yang di mana owner akun dapat menambahkan beberapa email address.
Penjelasan mengenai gambar pada di atas adalah, di saat owner menambahkan email address pada monitoring email address, maka untuk tiap email address memiliki identitas yang disimpan dalam parameter id
, dan parameter subscriber_id
yang dimiliki oleh owner.
Bagian Eksploitasi
Setelah saya merasa cukup melakukan explore, saya langsung mencoba membuat akun baru pada website tersebut menggunakan alamat email yang berbeda. Setelah melakukan registrasi, saya langsung mencoba menambahkan alamat email secara acak pada bagian monitoring email address tersebut.
Mari kita menganggap bahwa akun pertama yang saya buat tadi adalah sebagai Attacker, dan aku kedua yang saya buat adalah sebagai Victim.
Pada akun pertama, saya mencoba untuk menghapus salah satu list email yang telah saya tambahkan pada Monitoring email address dengan tujuan ingin melihat endpoint pada proses request tersebut. Setelah mengetahui hal tersebut, saya tertuju pada endpoint /users/settings dengan HTTP Method POST yang berisi request tipe JSON diiringi dengan beberapa parameter antara lain id
, subscriber_id
, sha1
, email
, verification_token
, dan lain-lain.
Yang menjadi perhatian saya adalah pada bagian parameter id
yang di mana hal tersebut adalah sebuah identitas pada setiap alamat email.
Lalu bagaimana caranya menghapus email address yang ada pada victim kalau misalnya kita tidak tahu
id
dari pada email tersebut ?
Kali ini pada akun kedua, saya mengaktifkan Intercept pada Burpsuite saat menghapus list alamat email pada Monitoring email address, setelah itu request saya kirim ke Repeater untuk menyimpan request tersebut lalu saya membatalkan request dengan menekan tombol Drop. Dengan ini saya sudah mendapatkan id
dari email address akun victim.
Setelah saya mendapatkan parameter id dari akun kedua, saya kembali ke akun pertama dengan melakukan hal yang sama, yaitu mencoba menghapus alamat email di Monitoring email address, setelah itu request di kirim ke repeater. Setelah itu saya tinggal memainkan request yang sudah saya simpan di repeater sebelumnya.
Pada request akun attacker, saya tinggal mengubah nilai yang terdapat pada parameter id
milik victim sebelumnya.
Setelah saya melakukan request untuk menghapus alamat email address pada akun victim dengan request akun attacker, saya mencoba cek pada akun victim untuk melihat apakah request tersebut berhasil atau tidak….
Dan ternyata, request berhasil serta email address milik victim terhapus.
Selesai sudah..
Sebelumnya saya ingin mengucapkan mohon maaf apabila terdapat kalimat yang mungkin kurang dipahami, Besar hati saya ucapkan terima kasih sudah meluangkan waktu untuk membaca cerita singkat ini dalam penemuan bug.
Kritik dan saran dari kalian sangat membantu dalam kualitas penulisan saya untuk kedepannya..
Happy Hunting!
Refrensi :
https://medium.com/@Az3m/idor-checklist-c66133d0802b
https://hackerone.com/reports/2382484