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

Gabriel AdityaGabriel Aditya
2 min read

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.

0
Subscribe to my newsletter

Read articles from Gabriel Aditya directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Gabriel Aditya
Gabriel Aditya