How I Invited Myself into Other People’s Teams Without Permission


Pada kesempatan kali ini saya akan membahas sebuah celah Insecure Direct Object Reference (IDOR) yang memungkinkan saya untuk masuk ke dalam grup milik pengguna lain tanpa seizin owner dari grup tersebut.
Sistem yang saya uji memiliki sebuah fitur bernama Teams, di mana setiap pengguna dapat membuat grup atau tim baru. Dalam sebuah tim, terdapat tiga role utama:
Owner - pembuat tim, memiliki akses penuh.
Manager - memiliki akses untuk mengelola tim, tapi tidak selevel dengan owner.
Member - anggota biasa yang hanya bisa bergabung dan berpartisipasi.
Selain itu, sistem menyediakan fitur invite, di mana owner berhak mengundang pengguna lain dengan cara memasukkan email mereka, sekaligus memilih peran (member atau manager) yang akan diberikan
Eksploitasi Celah
Untuk menguji keamanan fitur ini, saya membuat dua akun:
Akun Attacker (A)
Akun Target (B)
Kemudian, masing-masing akun membuat sebuah tim berbeda, satu dengan akun A dan satu lagi dengan akun B.
Dari akun attacker, saya membuka tim yang telah dibuat dan menggunakan fitur invite dengan cara memasukkan alamat email serta memilih role sebagai member atau manager. Pada tahap ini, saya menggunakan alat BurpSuite untuk menangkap request sebelum diteruskan ke server. Request yang tertangkap terlihat seperti berikut:
POST /prod/teams/31/invite HTTP/1.1
host: example.com
........
........
........
csrf=csrftoken&
email=atackker@example.com
&role=OWNER
Secara normal, parameter team_id
dalam path (/teams/31/
) merepresentasikan ID tim milik akun attacker. Namun, setelah saya memodifikasi nilai team_id
tersebut menjadi 30 (ID tim milik akun target B), sistem tetap memproses permintaan tersebut dan mengirimkan email undangan ke akun attacker. Ketika saya membuka link undangan dari email tersebut, akun attacker berhasil masuk ke dalam tim milik akun target tanpa seizin owner yang sah.
Subscribe to my newsletter
Read articles from Gabriel Aditya directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
