BugBounty - Email Verification Bypass

Halo, apa kabar?

Sudah lama saya tidak menulis artikel pada blog ini, tapi untuk kali ini saya akan kembali lagi dengan berbagi story sederhana dan menarik untuk dibaca.

Postingan ini adalah tentang writeup untuk temuan bug yang saya laporkan ke salah satu situs untuk baca-baca Novel online yang ada di Play Store. Saya menemukan bug email verification bypass pada situs private.com tersebut.

Register Account

Dalam attack skenario ini saya tidak banyak melakukan ini-itu saat pengujian seperti melakukan recon, scanning, dan lain sebagainya.

Pada kasus kali ini, saya langsung fokus pada sebuah fungsi penting serta memiliki peran yang bisa dibilang berbahaya apabila ada kerentanan, yaitu fungsi register akun pada situs tersebut.

Tested Account:
Username: asdasdasd
Email: asdasdasd@gmail.com

Kemudian saya langsung pergi ke halaman registrasi akun dan mendaftar akun dengan nama username dan email seperti yang sudah saya cantumkan diatas.

Sebelum menekan tombol "Daftar" saya terlebih dahulu mengaktifkan intercept request dan hasil tangkapan tersebut responnya kurang lebih seperti ini,

POST Request:

POST /api/v2/registration/validasi_email h2
Host: private.com
content-length: 79
x-dreamfactory-api-key: xxxxxxxxxxxxxxxxx
dnt: 1
user-agent: my user agent
content-type: application/json
access-control-allow-origin: *
accept: application/json
origin: https://private.com/
sec-fetch-site: same-site
sec-fetch-mode: cors
sec-fetch-dest: empty
referer: https://private.com/
accept-encoding: gzip, deflate, br
accept-language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7

{"user_name":"asdasdasd","email":"asdasdasd@gmail.com","password":"xxxxxxxxxxxxx"}

Response Body:

{"success":true,"verif_id":"65330"}

Bisa kalian lihat nilai pada "verif_id" itu adalah kode untuk nanti digunakan saat melakukan verifikasi email setelah register akun, sangat menarik untuk ditindak lanjuti.

Sekarang saya akan login dengan menggunakan akun yang sudah saya buat tadi, saya akan mengambil nilai "user id" saya yang nanti itu akan diapliakasikan pada saat tahap exploitasi.

Jadi lengkapnya seluruh informasi yang saya dapatkan setelah membuat akun disitus tersebut kurang lebih seperti ini,

Username: asdasdasd
Email: asdasdasd@gmail.com
Verif_id: 65330
User_id: 96377

Sekarang ke langkah untuk exploitasi cara bypass email verification, let's gooo.

Exploitasi

Perlu saya sampaikan bahwa sebelumnya saya sudah membuat akun pertama (ujicoba 1) dengan email pribadi saya dan disini saya sudah mendapatkan link untuk verifikasi email setelah membuat akun tersebut kurang lebih akan seperti ini,

https://private.com/verifikasi_email_xxxxx.php?title=verifikasi_kode_xxxxx_melalui_email&verif_code=61420&user=96376_testakun123-61420&status=new

Jelaskan? Oke kita lanjut.

Nah, setelah diteliti link verifikasi email tersebut dengan baik ternyata memungkinkan penyerang dapat membypass email verikasi tanpa harus mengetahui link verikasi terlebih dahulu, artinya ini sudah bisa kita tebak.

Begini saya akan jelaskan secara rinci, bagian parameter "verif_code" itu adalah kode verifikasi lalu bagian parameter "user" itu sendiri adalah id user anda kemudian di ikuti degan nama username tepat dibelakangnya dan diakhiri dengan kode verifikasi lagi.

Jadi saya dapat membypass akun terdaftar kedua saya tadi dengan rangkaian link verifikasi seperti ini,

https://private.com/verifikasi_email_xxxxx.php?title=verifikasi_kode_xxxxx_melalui_email&verif_code=65330&user=96377_asdasdasd-65330&status=new

Langkah selanjutnya copy url verifikasi email yang sudah kita modifikasi tersebut, kemudian kita pergi ke browser lalu klik new tab paste url dan tekan enter, booom email kita sudah terverifikasi dengan baik artinya saya berhasil.

Good job! Hehe.

Dengan adanya bug seperti ini pada situs tersebut saya pikir ini akan sangat berbahaya bagi keamanan situs tersebut. Takutnya kerentanan ini jika diketahui oleh orang lain dapat dislahgunakan se enaknya saja gitu.

Tanpa pikir panjang, ya sudah saya langsung membuat attack skenario dan setelah semuanya beres kemudian saya kirimkan laporan ini ke pihak situs tersebut melalui contact email agar kedepanya segera ada perbaikan.


Timeline:
16 April - Send Report
22 April - Laporan Ditanggapi
28 April - Diberikan Hadiah
28 April - Bug Sudah Diperbaiki


Terimaksih untuk hadiahnya, saya menyukainya!

Sekian untuk postingan kali ini ya, maaf jika dalam penulisan atau penyampaian kata kali ini ada kesalahan mohon untuk dimaklumi. Saya harap anda menyukai tulisan ini terimakasih banyak dan sampai jumpa diwriteup menarik lainya.

Have a good day and happy hacking!

Comments