Haloo guys! Artikel kali ini membahas tentang bypass OTP.. dan menurut gw pribadi ini case yang cukup unik. Sebelum masuk ke langkah-langkahnya.. Otentikasi itu apa sih? simpelnya, otentikasi adalah proses identifikasi.
Di dunia digital, Otentikasi biasanya berupa email/username, password, dan nomor telepon. Atau bisa juga melalui pihak ketiga, misalnya login by facebook, google, twitter, dll.
Jadi awalnya gw mau ganti password akun.. tapi di halaman reset passwordnya harus verifikasi OTP lewat SMS, nah yg jadi masalah.. nomor yg ada di akun ini gak aktif 😆
Singkat cerita, gw nyoba kirim kodenya beberapa kali buat nyoba kemungkinan brute force.. tapi ternyata gabisa, ada limitasi disini. Gw nyoba cara lain sampe akhirnya dapetin bug ini..
Gw baca-baca lagi request & response dari halaman reset password di HTTP History Burp Suite. Disini gw sempet bingung, udah coba beberapa cara lain misalnya Bypass Rate Limit, Manipulasi Response, dll tapi masih ga bisa juga :(
5. Fokus lagi ke tujuan awal, gw logout dari akun baru dan balik ke halaman reset password.
6. Input nomor hp dari akun lama, harusnya disini gagal kirim OTP karena pada hari itu udah 5 kali minta OTP. Ternyata ngga, gw masuk ke halaman verifikasi OTP.
7. Gw balik ke halaman awal, https://redacted.com/reset_password
8. Kirim kode OTP ke akun gw yang baru sampe limit (5 kali), kode otp yang masuk ke nomor gw adalah 1728, 5691, 3571, 9602, 2688.
9. Gw melakukan hal yang sama dari langkah ke 6. Setelah itu.. gw cek kode apakah ada kode OTP yang baru setelah kena limitasi? ternyata ga ada. Berarti aplikasi gak ngirim kode OTP lagi ke nomor gw.. tapi disini gw diminta buat verifikasi kodenya.
10. Gw coba verifikasi dengan kode yang sebelumnya udah kirim, yaitu 1728, 5691, 3571, 9602, dan 2688. Disini semua kodenya gagal, berarti aplikasi minta kode yang terbaru kan? sedangkan kode terbarunya gak masuk ke nomor hp gw
11. Terakhir.. gw nyoba buat masukin 0000 pada saat verifikasi OTP, ternyata berhasil 😎
Kenapa bisa di proses verifikasi OTP nya bisa di bypass pake 0000 ?? Gw juga kurang tau mekanisme pengiriman dan verifikasi OTP dari aplikasi itu gimana. Tapi ini logic backend nya agak aneh sih.. (coba fokus di langkah ke 6 - 10).