Bypass SMS Authentication To Account Takeover

Revan A
3 min readMay 13, 2023
Bypass SMS Authentication To Account Takeover

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.

Ringkasan

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..

Langkah-langkah:

  1. Masuk ke halaman reset password, misalnya https://redacted.com/reset_password
  2. Isi nomor hp yg terdaftar di aplikasi/website itu dan klik kirim OTP
  3. Karena nomornya gak aktif, gw coba “kirim ulang” kode OTP nya berkali-kali buat ngetest kemungkinan brute force.. tapi gagal, kirim OTP cuma bisa 5 kali dlm sehari
  4. Setelah langkah ke 3 gagal, gw daftar akun baru dengan nomor hp yang masih aktif.. dan gw nyoba reset password di akun baru gw.

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 😎

Penutup

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).

--

--

Revan A

IT Security Analyst | Red Team | Security Researcher