Taksonomi Mutasi/Variasi Registrasi & Account Takeover


Struktur Klasifikasi

Registrasi & Account Takeover (Reg/ATO) adalah kelas kerentanan yang mencakup seluruh siklus hidup akun — mulai dari pembuatan akun, autentikasi, dan pemeliharaan sesi hingga pemulihan akun. Ini bukan satu kerentanan tunggal, melainkan attack surface yang kompleks yang muncul di berbagai titik transisi dari authentication state machine.

Taksonomi ini disusun berdasarkan tiga sumbu:

  • Sumbu 1 — Target Mutasi: Komponen mana dari siklus hidup akun yang sedang dimanipulasi. Ini membentuk struktur utama dokumen.
  • Sumbu 2 — Jenis Perbedaan: Jenis kegagalan verifikasi atau inkonsistensi state apa yang memungkinkan serangan. Ini adalah sumbu lintas-sektor yang berlaku di semua kategori.
  • Sumbu 3 — Skenario Serangan: Bagaimana mutasi tersebut dimanfaatkan dalam eksploitasi di dunia nyata.

Sumbu 2 — Jenis Perbedaan (Klasifikasi Lintas-Sektor)

KodeJenis PerbedaanDeskripsi
D1Identity Verification GapKetiadaan atau bypass terhadap verifikasi kepemilikan email/nomor telepon
D2State Management FlawPersistensi abnormal atau non-invalidasi sesi, token, atau transisi state
D3Token/Secret WeaknessPrediktabilitas token, entropi rendah, atau adanya jalur kebocoran
D4Logic Flow BypassMelewati langkah-langkah atau memanipulasi urutan alur autentikasi/verifikasi
D5Race Condition / TOCTOUMengeksploitasi jeda waktu antara validasi dan penggunaan
D6Trust Boundary ViolationServer mempercayai data dari client-side secara tanpa syarat
D7Channel CompromiseKompromi terhadap saluran autentikasi itu sendiri (SMS, email, deep link)

§1. Serangan Registrasi / Pembuatan Akun

Fase pembuatan akun adalah medan pertempuran pra-autentikasi dari ATO. Penyerang bisa saja membuat akun lebih dulu di layanan yang belum didaftarkan korban, atau mengeksploitasi kelemahan dalam proses registrasi itu sendiri.

§1-1. Pre-Account Takeover

Kelas serangan di mana penyerang membuat akun sebelum korban mendaftar, mempertahankan akses ke akun tersebut ketika korban kemudian mendaftar. Lima varian telah diklasifikasikan secara sistematis oleh Microsoft Research pada tahun 2022.

SubtipeMekanismeKondisi UtamaPerbedaan
Classic-Federated MergePenyerang membuat akun klasik (berbasis password) dengan email korban → korban mendaftar via OAuth/SSO dengan email yang sama → layanan secara otomatis menggabungkan kedua akun, memberikan akses kepada penyerangLayanan secara otomatis menggabungkan akun klasik/federated berdasarkan emailD1, D4
Unexpired Session IdentifierPenyerang membuat akun dengan email korban dan mempertahankan sesi login → korban memulihkan akun via password reset → sesi penyerang yang sudah ada tidak diinvalidasiPassword reset tidak menginvalidasi sesi yang sudah adaD2
Trojan IdentifierPenyerang membuat akun dengan email korban dan menambahkan faktor autentikasi sekunder (nomor telepon, email cadangan) → korban memulihkan akun tetapi faktor sekunder penyerang tetap adaPemulihan akun tidak menghapus metode autentikasi sekunder yang sudah ada sebelumnyaD2, D4
Unexpired Email ChangePenyerang membuat akun dengan email korban → memulai permintaan perubahan email (tanpa menyelesaikan konfirmasi) → korban memulihkan akun → penyerang menyelesaikan link konfirmasi perubahan email yang masih tertunda untuk mengubah email ke miliknyaPassword reset tidak menginvalidasi token perubahan email yang tertundaD2, D3
Non-Verifying IdPPenyerang membuat akun melalui IdP yang tidak memverifikasi kepemilikan email → korban mendaftar via jalur klasik dengan email yang sama → layanan mempercayai email IdP sebagai terverifikasi dan menggabungkan akunIdP tidak memverifikasi kepemilikan email dan layanan mempercayainya secara butaD1, D6

§1-2. Bypass Verifikasi Email

SubtipeMekanismeKondisi UtamaPerbedaan
Response ManipulationMemodifikasi status code respons server atau field JSON untuk mengaktifkan akun tanpa verifikasi email (misalnya {"verified": false}{"verified": true})Server bergantung pada respons client untuk state verifikasiD6
Forced BrowsingMengakses langsung halaman/API pasca-verifikasi tanpa menyelesaikan verifikasi emailServer tidak memeriksa state verifikasi pada setiap permintaanD4
Activation Endpoint Direct CallMemanggil langsung endpoint API aktivasi tanpa token email untuk mengaktifkan akunVerifikasi token tidak diimplementasikan pada endpoint aktivasiD4
Email Normalization DifferentialMengeksploitasi perbedaan normalisasi dalam alamat email — case sensitivity, titik (.), tag plus (+) — untuk melewati verifikasi (misalnya victim@gmail.com vs Victim@Gmail.com)Logika normalisasi email yang tidak konsisten antara registrasi dan verifikasiD1
Verification Link ReuseMenggunakan ulang link verifikasi yang sudah dipakai sebelumnya untuk perubahan email baruToken verifikasi tidak terikat pada alamat email tertentuD3
Auto-Login on RegistrationAuto-login saat registrasi selesai tanpa verifikasi email; penyerang mendaftar dengan email korban dan langsung mendapatkan sesiVerifikasi email terpisah dari alur registrasiD1, D4

§1-3. Mass Assignment / Parameter Injection

SubtipeMekanismeKondisi UtamaPerbedaan
Role EscalationMenambahkan field hak akses seperti role=admin atau isAdmin=true ke dalam permintaan registrasi untuk membuat akun administratorServer mengikat semua field request body ke objekD6
Organization/Tenant InjectionMemanipulasi parameter org_id atau tenant_id saat registrasi untuk bergabung ke organisasi lain sebagai adminIsolasi tenant yang tidak memadai dalam arsitektur multi-tenantD6
Account State ManipulationMenyuntikkan field state seperti verified=true, active=true, atau email_confirmed=true ke dalam permintaan registrasiField state akun tidak dilindungi oleh allowlistD6, D4
Hidden Field InjectionMenambahkan parameter API yang tidak terekspos di frontend (misalnya credit_balance, subscription_tier) ke dalam permintaan registrasiSkema API menerima lebih banyak field daripada yang ditampilkan di form clientD6

§1-4. Race Condition pada Registrasi

SubtipeMekanismeKondisi UtamaPerbedaan
Duplicate Account CreationMengirimkan permintaan registrasi secara bersamaan dengan email/username yang sama untuk melewati constraint keunikan dan membuat akun duplikatPemeriksaan keunikan dilakukan di level aplikasi, bukan di level transaksi DBD5
Invitation Code ReuseMengirimkan beberapa permintaan registrasi secara bersamaan dengan satu kode undangan sekali-pakai untuk menggunakannya berulang kaliKonsumsi kode undangan bukan operasi atomikD5
Promo/Coupon Double-SpendMenerapkan kode promo beberapa kali saat registrasi melalui race conditionPemrosesan logika konsumsi kupon yang tidak atomikD5
Registration FloodingSecara otomatis membuat akun palsu dalam jumlah besar untuk menguras sumber daya layanan atau melakukan enumerasi penggunaTidak ada rate limiting / CAPTCHA pada endpoint registrasiD4

§2. Serangan Password Reset / Pemulihan Akun

Password reset adalah titik masuk paling sering untuk ATO. Kerentanan muncul di setiap tahap alur reset — dari pembuatan token, pengiriman, validasi, hingga penerapannya.

§2-1. Kelemahan Pembuatan Token

SubtipeMekanismeKondisi UtamaPerbedaan
Predictable Token (Timestamp-based)Token reset dibuat sebagai hash MD5/SHA1 dari timestamp, sehingga dapat diprediksiTidak menggunakan CSPRNG; token dibuat berdasarkan timestampD3
Sequential TokenToken dibuat sebagai integer sekuensial atau mengikuti pola yang berurutanTidak ada keacakan dalam pembuatan tokenD3
Short Token / Low EntropyPanjang token sangat pendek (misalnya angka 4-6 digit), sehingga brute-force menjadi layakEntropi token yang tidak mencukupi + rate limiting yang tidak memadaiD3
Token Reuse Across UsersToken reset yang dibuat dalam jendela waktu yang sama identik untuk pengguna yang berbedaTidak ada seed unik per pengguna dalam pembuatan tokenD3
UUID v1 TokenUUID v1 (berbasis timestamp + alamat MAC) digunakan sebagai token reset, sehingga dapat diprediksiUUID v1 digunakan alih-alih UUID v4 berbasis CSPRNGD3

§2-2. Pengiriman Token / Kebocoran

SubtipeMekanismeKondisi UtamaPerbedaan
Host Header PoisoningPenyerang memodifikasi header Host dalam permintaan reset ke domain miliknya → server membuat link reset yang mengarah ke domain tersebut → korban mengklik dan token dikirimkan ke server penyerangServer menggunakan header Host untuk membuat URL resetD3, D6
Referer Header LeakageToken dalam URL bocor melalui header Referer ketika halaman reset memuat resource eksternal (gambar, skrip, tautan)Token reset ada di parameter URL + pemuatan resource eksternalD3
Response Body ExposureToken reset disertakan dalam body respons API, terekspos ke clientToken dikembalikan dalam respons HTTP, tidak hanya via emailD3
X-Forwarded-Host PoisoningMemanipulasi header proxy seperti X-Forwarded-Host atau X-Original-URL untuk mengubah host URL resetPenentuan host di balik reverse proxy mempercayai header proxyD3, D6
Password Reset via API ResponseToken reset atau password sementara langsung disertakan dalam respons APIEksposur informasi debug untuk kemudahan pengembanganD3

§2-3. Bypass Validasi Token

SubtipeMekanismeKondisi UtamaPerbedaan
User ID ManipulationMengubah parameter user_id dalam URL reset ke ID pengguna lain untuk mereset passwordnyaToken tidak terikat pada pengguna tertentuD4, D6
Token-User DecouplingToken reset dan identifier pengguna diteruskan sebagai parameter terpisah, memungkinkan kombinasi token milik sendiri yang valid + ID pengguna lainPengikatan pengguna tidak diverifikasi saat validasi tokenD4
Empty/Null TokenMeneruskan string kosong, null, atau undefined sebagai nilai token untuk melewati validasiPenanganan exception yang tidak memadai untuk token kosong (misalnya if (token == storedToken) di mana storedToken bernilai null)D4
Token Expiration BypassToken yang sudah kedaluwarsa tetap diproses sebagai validValidasi kedaluwarsa token tidak diimplementasikan atau ketidakcocokan waktu serverD2, D3
Brute-Force TokenMelakukan brute-force token pendek (4-6 digit) untuk menemukan token yang valid (kasus yang terdokumentasi berhasil dengan ~60.000 permintaan)Tidak ada rate limiting pada endpoint validasi tokenD3
Token Not Invalidated After UseToken reset yang sudah digunakan tidak diinvalidasi dan dapat digunakan kembaliPenghapusan/invalidasi token setelah digunakan tidak diimplementasikanD2

§2-4. Logic Flaw Alur Password Reset

SubtipeMekanismeKondisi UtamaPerbedaan
MFA Step SkipMelewati langkah verifikasi MFA dalam alur reset dan langsung mengakses langkah perubahan passwordSetiap langkah dalam alur reset tidak memverifikasi penyelesaian langkah sebelumnyaD4
Email Parameter OverrideMemodifikasi parameter email dalam permintaan reset ke email penyerang agar token reset dikirimkan ke kotak masuk penyerangServer menggunakan parameter email dari permintaan alih-alih email yang terikat pada sesi/tokenD6
Password Reset via OAuth ChainMengeksploitasi secara silang alur OAuth “lupa password” dan alur reset standar untuk melewati autentikasiTidak ada isolasi state antara callback OAuth dan alur password resetD4
Account Recovery Question BypassJawaban pertanyaan keamanan kosong, tidak case-sensitive, atau dapat ditebak dari informasi publikKelemahan inheren dari pemulihan akun berbasis pertanyaan keamananD1
Tokenless Direct ResetEndpoint password reset menerima email/username dan password baru secara langsung tanpa memerlukan token reset — penyerang mengirimkan identifier target untuk menetapkan password sembarangAlur reset tidak memiliki langkah verifikasi token; endpoint perubahan password hanya mempercayai identifier yang disuplai penggunaD4

§3. Serangan Manajemen Sesi

Sesi adalah representasi runtime dari state autentikasi. ATO dapat terjadi di setiap tahap siklus hidup token sesi — pembuatan, pengiriman, pemeliharaan, dan invalidasi.

§3-1. Session Fixation

SubtipeMekanismeKondisi UtamaPerbedaan
URL-based FixationPenyerang mengirimkan korban URL yang berisi session ID yang diketahuinya → korban login melalui URL tersebut → penyerang mengakses sesi terautentikasi menggunakan session ID yang samaSession ID tidak di-regenerasi saat loginD2
Cookie-based FixationMenetapkan cookie sesi yang diketahui penyerang di browser korban melalui XSS atau kerentanan pada domain terkaitXSS pada subdomain + session ID tidak di-regenerasiD2
Cross-Subdomain FixationMenetapkan cookie domain induk dari subdomain terkait untuk mem-fix sesi aplikasi targetKonfigurasi domain cookie wildcardD2

§3-2. Session Hijacking

SubtipeMekanismeKondisi UtamaPerbedaan
XSS-based Token TheftMengeksfiltrasi token sesi dari document.cookie atau localStorage melalui Stored/Reflected XSSKerentanan XSS + flag HttpOnly tidak disetelD7
Cookie Theft via MalwareMalware infostealer mengekstrak cookie sesi dari browser dan mengirimkannya ke penyerangKeamanan endpoint yang tidak memadaiD7
Network-level InterceptionMenangkap token sesi melalui network sniffing pada komunikasi tidak terenkripsi (HTTP)HTTPS tidak diterapkan atau flag Secure tidak disetelD7
Token Replay / Pass-the-CookieMenggunakan kembali token sesi yang dicuri di browser penyerang untuk melewati autentikasi (juga melewati MFA) — 147.000 serangan token replay terdeteksi oleh Microsoft pada tahun 2024Token sesi tidak terikat pada perangkat/IPD2
Citrix-style Session TheftLangsung meng-query/mencuri cookie sesi pengguna lain melalui kerentanan sisi server (kasus pelanggaran MITRE 2024)Kerentanan sisi server yang memungkinkan akses ke session storeD7

§3-3. Eksploitasi State Sesi

SubtipeMekanismeKondisi UtamaPerbedaan
Session Non-Invalidation on Password ChangeSesi yang ada tidak diinvalidasi setelah perubahan/reset password, memungkinkan penyerang mempertahankan aksesInvalidasi sesi penuh tidak diimplementasikan saat perubahan passwordD2
Concurrent Session AbuseTidak ada batas sesi bersamaan per akun, memungkinkan penyerang dan korban aktif secara simultanKontrol sesi bersamaan tidak diimplementasikanD2
Session Persistence After Account DeactivationSesi yang ada tetap valid bahkan setelah akun dinonaktifkan/dihapusInvalidasi sesi tidak terhubung dengan perubahan state akunD2
JWT None AlgorithmMenyetel algoritma JWT ke none untuk membuat token valid tanpa tanda tanganLibrary JWT mengizinkan algoritma noneD3, D4
JWT Key Confusion (RS256 → HS256)Menggunakan public key RS256 sebagai secret key HS256 untuk memalsukan tokenImplementasi JWT mengizinkan algorithm confusionD3

§4. Bypass Multi-Factor Authentication

MFA adalah pertahanan terakhir terhadap ATO, namun kelemahan implementasi memungkinkan banyak cara bypass.

§4-1. Bypass OTP/Kode

SubtipeMekanismeKondisi UtamaPerbedaan
OTP Brute-ForceMelakukan brute-force OTP 4-6 digit secara sistematis (hingga 999.999 percobaan)Tidak ada rate limiting / account lockout pada endpoint verifikasi OTPD3
Rate Limit Reset via ResendMeminta pengiriman ulang OTP mereset penghitung percobaan, memungkinkan brute-force tanpa batasResend OTP mereset hitungan percobaan OTP yang sudah adaD4
OTP in Response BodyOTP disertakan dalam body respons API, terlihat dalam traffic jaringanOTP disertakan dalam respons untuk keperluan pengembangan/debugD3
OTP Non-ExpirationOTP tetap valid selamanya tanpa batas waktu, memungkinkan brute-force lambatWaktu kedaluwarsa OTP tidak dikonfigurasiD3
Universal/Default OTPNilai tertentu (misalnya 000000, 123456) selalu valid sebagai OTP backdoorOTP default untuk pengujian tetap ada di produksiD3, D4
OTP ReuseOTP yang sudah digunakan tidak diinvalidasi dan dapat digunakan kembaliInvalidasi OTP setelah digunakan tidak diimplementasikanD2

§4-2. Bypass Logic Flow MFA

SubtipeMekanismeKondisi UtamaPerbedaan
Direct Dashboard AccessSetelah autentikasi langkah 1 (password), langsung mengakses halaman pasca-autentikasi tanpa menyelesaikan langkah 2 (MFA)Penyelesaian MFA tidak diverifikasi di sisi server pada setiap permintaanD4
MFA Step Parameter ManipulationMemanipulasi parameter permintaan seperti mfa_required=false atau step=3 untuk melewati langkah MFAState MFA bergantung pada parameter client-sideD6
Response ManipulationMemodifikasi status code respons verifikasi MFA dari 403200Kontrol alur berbasis kode respons di sisi clientD6
Backup Code Brute-ForceMelakukan brute-force backup code MFA (biasanya alfanumerik 8 karakter)Tidak ada rate limiting pada verifikasi backup codeD3
MFA Downgrade (2FA → No FA)Permintaan penonaktifan 2FA tidak memerlukan re-autentikasi, memungkinkan penyerang menghapus MFA setelah session hijackPenonaktifan 2FA tidak memerlukan verifikasi kode 2FA saat iniD4
MFA Setup HijackTOTP seed terekspos dalam respons API saat setup 2FA, atau dapat diakses dari sesi lain sebelum setup selesaiEksposur TOTP seed + isolasi sesi yang tidak memadai dalam alur setupD3, D2

§4-3. Channel Compromise MFA

SubtipeMekanismeKondisi UtamaPerbedaan
SIM SwapMenipu operator untuk memindahkan nomor korban ke SIM penyerang → menerima SMS OTP — peningkatan 1.055% di Inggris pada tahun 2024MFA berbasis SMS + verifikasi identitas operator yang tidak memadaiD7
SS7 InterceptionMengeksploitasi kerentanan protokol SS7 untuk mencegat SMS OTP di level jaringanKurangnya autentikasi/enkripsi pada SS7 (desain warisan)D7
MFA Prompt Bombing / FatigueBerulang kali mengirimkan notifikasi push persetujuan MFA kepada korban, mendorong persetujuan yang tidak disengaja atau karena kelelahanMFA berbasis push + tidak ada batas rate notifikasiD7
OAuth Device Code PhishingMenyalahgunakan alur OAuth 2.0 Device Authorization Grant untuk mengelabui korban memasukkan kode perangkat penyerang di halaman autentikasi Microsoft yang sah — digunakan secara aktif oleh aktor yang disponsori negara sejak Januari 2025OAuth Device Code Flow + rekayasa sosialD7
AiTM (Adversary-in-the-Middle) PhishingReverse proxy real-time (Evilginx, Modlishka, dll.) meneruskan ke situs asli sambil secara bersamaan menangkap token MFA dan cookie sesiProxy phishing real-time + token sesi tidak terikat pada perangkatD7
DNS Cache Poisoning → Password Reset Interception (Kaminsky-Style)Meracuni MX record domain target atau DNS server mail untuk mengalihkan email password reset ke server mail yang dikontrol penyerang. Ketika korban meminta password reset, email yang berisi token reset dikirimkan ke penyerang, memungkinkan account takeover. Harus memicu permintaan reset dalam jendela TTL DNS, biasanya dikombinasikan dengan rekayasa sosialDNS resolver rentan terhadap cache poisoning + respons DNS server mail target dapat di-spoof + alur password reset bergantung pada saluran emailD7

§5. Serangan OAuth / SSO / Autentikasi Federasi

OAuth dan SSO membentuk lapisan delegasi autentikasi. Attack surface unik ada dalam manajemen state, pertukaran token, dan penautan akun selama proses delegasi.

§5-1. Eksploitasi Alur OAuth

SubtipeMekanismeKondisi UtamaPerbedaan
CSRF on OAuth CallbackParameter state OAuth tidak divalidasi → penyerang mengirimkan URL callback OAuth miliknya ke korban → akun korban ditautkan ke akun sosial penyerangParameter state tidak digunakan atau tidak divalidasiD4, D6
Open Redirect in OAuthValidasi redirect_uri OAuth yang longgar membocorkan authorization code/token ke domain penyerangValidasi redirect_uri hanya menggunakan wildcard atau sub-pathD3
Authorization Code ReplayAuthorization code yang sudah digunakan tidak diinvalidasi dan dapat digunakan kembaliPenggunaan sekali pakai authorization code tidak diterapkanD2
Token SubstitutionToken OAuth yang diterbitkan untuk aplikasi lain digunakan untuk autentikasi di aplikasi targetKlaim aud (audience) token tidak divalidasiD4
Implicit Flow Token InterceptionAccess token dalam fragment (#) dari Implicit Grant bocor melalui open redirectPenggunaan Implicit Flow + validasi redirect_uri yang tidak memadaiD3

§5-2. Eksploitasi Account Linking

SubtipeMekanismeKondisi UtamaPerbedaan
Email-based Auto-LinkingSelama login OAuth, email yang dikembalikan oleh IdP secara otomatis ditautkan ke akun yang sudah ada dengan email yang sama → penyerang menggunakan IdP yang mengembalikan email korban untuk mengakses akun yang sudah adaAuto-linking akun berbasis email + verifikasi email IdP tidak diperiksaD1, D6
IdP Email Unverified TrustLayanan mengabaikan email_verified=false yang dikembalikan oleh IdP dan tetap mempercayai email tersebutField email_verified dalam respons IdP tidak diperiksaD1
Dangling OAuth ConnectionKoneksi OAuth dari akun sosial yang dihapus tetap ada di layanan; akun baru dengan social ID yang sama mengakses akun layanan yang sudah adaKoneksi OAuth tidak di-refresh saat penghapusan/pembuatan ulang akun sosialD2
Google Domain Ownership ChangeKetika kepemilikan domain perusahaan berpindah, pemilik baru mengautentikasi via Google OAuth dengan email domain yang sama → mengakses akun SaaS mantan karyawanGoogle OAuth mengizinkan autentikasi berbasis email domain + perubahan kepemilikan domain tidak tercerminD1

§6. Serangan Berbasis Kredensial

Serangan kredensial langsung merupakan vektor ATO dengan volume tertinggi. Pada tahun 2024, lebih dari 7 miliar kredensial beredar di dark web.

§6-1. Credential Replay

SubtipeMekanismeKondisi UtamaPerbedaan
Credential StuffingSecara otomatis mencoba kombinasi email/password yang bocor dalam skala besar terhadap layanan target — data Synthient 2025: 2 miliar email unik, 1,3 miliar password unikPenggunaan ulang password + rate limiting yang tidak memadaiD3
Password SprayingMencoba sekumpulan kecil password umum (Password1!, Summer2025!, dll.) terhadap banyak akunKebijakan account lockout gagal mendeteksi percobaan terdistribusiD3
AI-Optimized Credential SelectionAgen AI mengoptimalkan serangan dengan menganalisis pola keberhasilan sebelumnya, menargetkan domain bernilai tinggi, dan memprediksi probabilitas penggunaan ulang passwordSerangan kredensial generasi berikutnya yang memanfaatkan model MLD3
Stealer Log ExploitationMengakses akun menggunakan cookie sesi + log kredensial yang dikumpulkan oleh malware infostealerInfeksi endpoint + kredensial login yang tersimpanD7

§6-2. Varian Brute-Force

SubtipeMekanismeKondisi UtamaPerbedaan
Classic Brute-ForceMencoba semua kemungkinan kombinasi password terhadap satu akunTidak ada account lockout atau rate limitingD3
Distributed Brute-ForceMelakukan brute-force dari beberapa IP untuk melewati rate limitingHanya rate limiting berbasis IP yang diterapkan (tidak ada pembatasan berbasis akun)D3
Username Enumeration → Targeted AttackMengekstrak daftar username valid menggunakan respons diferensial dari alur registrasi/login/reset, lalu melancarkan serangan bertargetRespons diferensial seperti “Pengguna tidak ada” vs. “Password salah”D1

§7. Rantai Kerentanan Client-Side

Bukan ATO secara mandiri, tetapi XSS dan CSRF berfungsi sebagai komponen inti pembangun rantai ATO.

§7-1. Rantai XSS → ATO

SubtipeMekanismeKondisi UtamaPerbedaan
Stored XSS → Cookie ExfiltrationMengeksfiltrasi cookie sesi ke server eksternal melalui Stored XSSXSS + flag HttpOnly tidak disetelD7
Stored XSS → Email/Password ChangePayload XSS memanggil API perubahan email atau password dalam konteks terautentikasiXSS + re-autentikasi tidak diperlukan untuk operasi sensitifD7, D4
Self-XSS + Login CSRFLogin CSRF memaksa korban masuk ke akun penyerang, lalu Self-XSS di halaman pengaturan dieksekusi di browser korban → mencuri sesi/data korban yang sebenarnyaSelf-XSS + tidak ada perlindungan CSRF pada endpoint loginD7
XSS → OAuth Token TheftMencuri access token atau refresh token OAuth dari localStorage/sessionStorage melalui XSSToken OAuth disimpan di penyimpanan yang dapat diakses JavaScriptD7
Zero-Click XSS ATOXSS dalam skrip eksternal atau komponen tertanam dieksekusi secara otomatis tanpa interaksi pengguna untuk mencapai ATO — dalam kasus Meta CAPI Gateway, dikombinasikan dengan whitelist CORS untuk memungkinkan Facebook ATOXSS dalam skrip yang dimuat otomatis + misconfigurasi CORSD7
XSS → Cross-Subdomain Cookie BridgeXSS pada subdomain mengeksfiltrasi cookie yang cakupannya ke domain induk (misalnya .yelp.com), memungkinkan session hijack pada aplikasi subdomain lain tempat cookie tersebut digunakan untuk autentikasi — menjembatani dampak XSS lintas batas subdomainXSS pada subdomain mana pun + cookie sesi cakupannya ke domain induk (Domain=.example.com)D7

§7-2. Rantai CSRF → ATO

SubtipeMekanismeKondisi UtamaPerbedaan
CSRF Email ChangeKetika korban mengunjungi halaman penyerang, permintaan perubahan email dikirimkan secara otomatis, mengubah email akun ke email penyerangTidak ada CSRF token pada perubahan email + re-autentikasi tidak diperlukanD4
CSRF Password ChangePermintaan perubahan password tidak memiliki perlindungan CSRF dan tidak memerlukan password saat iniTidak diperlukan password saat ini + tidak ada CSRF token untuk perubahan passwordD4
CORS Misconfiguration → Token TheftKebijakan CORS yang terlalu permisif (server secara dinamis memantulkan header Origin di Access-Control-Allow-Origin dengan Access-Control-Allow-Credentials: true) memungkinkan panggilan API terautentikasi dan pencurian token dari situs penyerang — kasus Langflow CVE-2025-34291. Catatan: ACAO: * dengan kredensial diblokir oleh browser sesuai spesifikasi.Misconfigurasi CORS + cookie SameSite=NoneD4, D7

§8. Serangan Kontrol Otorisasi & Parameter

Bahkan setelah autentikasi, kelemahan dalam batasan otorisasi memungkinkan akses ke akun lain.

§8-1. IDOR-based ATO

SubtipeMekanismeKondisi UtamaPerbedaan
Profile IDORMengubah user ID dalam permintaan API untuk melihat profil pengguna lain (email, password hash, dll.)Kontrol akses di level objek tidak diimplementasikanD6
Password Change IDORMengubah user ID dalam API perubahan password untuk mereset password pengguna lain (kasus bounty $500)Kecocokan antara pengguna sesi dan pengguna target tidak diverifikasi saat perubahan passwordD6
API Key/Token IDORMengambil API key atau token autentikasi pengguna lain melalui IDOR untuk mengakses akun merekaKontrol akses yang tidak memadai pada endpoint manajemen API keyD6
Account Settings IDORMemodifikasi pengaturan akun pengguna lain (email, MFA, akun sosial yang ditautkan, dll.) melalui IDORTidak ada verifikasi otorisasi di level objek pada API perubahan pengaturanD6

§8-2. Privilege Escalation via Registration Context

SubtipeMekanismeKondisi UtamaPerbedaan
Invitation System AbuseMemodifikasi parameter role/permission dalam tautan undangan untuk mendaftar dengan hak yang lebih tinggiInformasi role disertakan dalam token undangan tanpa penandatangananD6
Tenant SwitchingMemodifikasi identifier tenant saat registrasi/login untuk mengautentikasi sebagai pengguna organisasi lainIsolasi multi-tenant yang tidak memadaiD6
Admin Registration Endpoint ExposureEndpoint registrasi khusus admin (/admin/register, /api/admin/signup) dapat diakses tanpa autentikasi — kasus bounty ShopifyTidak ada kontrol akses yang diimplementasikan pada endpoint adminD4
E-Commerce Checkout Session HijackEndpoint modul pembayaran/checkout (misalnya /checkout/express, /module/ps_checkout/ExpressCheckout) membuat sesi terautentikasi berdasarkan email atau ID pesanan tanpa memverifikasi identitas pemohon. POST yang tidak terautentikasi dengan email korban menghasilkan sesi penuh untuk akun tersebut — alur checkout menjadi saluran autentikasi alternatif (CVE-2025-61922, CVSS 9.1)Modul checkout membuat sesi tanpa verifikasi identitas; endpoint tidak terautentikasiD1, D4

Autentikasi tanpa password menciptakan attack surface yang baru.

SubtipeMekanismeKondisi UtamaPerbedaan
Magic Link Token InterceptionMencegat token magic link dalam email melalui MITM, kompromi akun email, atau kebocoran RefererMagic link menyertakan token dalam parameter URL + keamanan saluran email yang tidak memadaiD3, D7
Deep Link Hijacking (Mobile)Aplikasi berbahaya mencegat handler deep link aplikasi mobile untuk mencuri token magic link — kasus bounty $500 di AndroidVerifikasi deep link yang tidak memadai + aplikasi berbahaya terpasangD7
Magic Link URL Parameter ManipulationMemodifikasi parameter callback URL dalam magic link untuk mengarahkan ulang ke situs penyerang setelah autentikasi + kebocoran tokenTidak ada allowlist callback URL yang diterapkanD3
Magic Link Non-ExpirationMagic link tidak kedaluwarsa atau tetap valid untuk waktu yang lama (berhari-hari), memungkinkan penggunaan ulang dari arsip emailKedaluwarsa token tidak disetel atau masa validitas yang terlalu panjangD3
Passwordless → Password Recovery ParadoxMekanisme pemulihan akun dalam sistem passwordless rentan, menyebabkan ATO selama proses pemulihanAlur pemulihan meniadakan manfaat keamanan dari passwordlessD4

Pemetaan Skenario Serangan (Sumbu 3)

SkenarioArsitektur / KondisiKategori Mutasi Utama
Pre-Account TakeoverKorban belum terdaftar di layanan + penyerang mengetahui email korban§1-1, §5-2
Full Account TakeoverKontrol penuh atas akun diperoleh pasca-autentikasi§2, §3-2, §4, §6, §7
Privilege EscalationPeningkatan dari pengguna biasa ke peran admin/hak tinggi§1-3, §8-2
Credential Replay at ScaleSerangan otomatis yang memanfaatkan data bocor dalam skala besar§6-1, §6-2
MFA Bypass → ATOAkses akun setelah menghindari perlindungan MFA§4-1, §4-2, §4-3
Session Persistence ATOMempertahankan akses bahkan setelah pemilik sah mengubah password§1-1 (Unexpired Session), §3-3
Chain Attack (Multi-Bug)Serangan komposit yang menggabungkan dua atau lebih kerentanan§7-1, §7-2 + §2 atau §5
Supply Chain / Domain ATOAkses akun melalui perubahan kepemilikan domain atau akuisisi layanan§5-2 (Domain Ownership Change)

Pemetaan CVE / Bounty (2023–2025)

Kombinasi MutasiCVE / KasusDampak / Bounty
§5-1 + §7-2 (CORS + CSRF + OAuth)CVE-2025-34291 (Langflow)Kritis — ATO + RCE. Permintaan lintas-origin memungkinkan token refresh
§7-1 (Zero-Click XSS → ATO)Meta CAPI Gateway XSS (2026)Full Facebook ATO. Rantai whitelist CORS + Stored XSS
§3-2 + §4-3 (Session Theft + MFA Bypass)Pelanggaran MITRE Corporation (2024)Kerentanan Citrix → pencurian cookie sesi → bypass MFA
§5-2 (Domain Ownership Change)Google OAuth Domain TakeoverMass SaaS ATO. Perubahan kepemilikan domain memungkinkan akses ke akun mantan karyawan
§4-3 (Device Code Phishing)Kampanye UNK_SneakyStrike (2025-01)80.000+ akun ditargetkan, ~100 cloud tenant diserang
§6-1 (Credential Stuffing)Pelanggaran Pelanggan Snowflake (2024)Pelanggaran data masif. Kredensial bocor + MFA tidak diterapkan
§2-1 + §2-3 (Predictable Token + Brute-Force)RubyGems Password Reset (2024)ATO package manager dimungkinkan. Token berbasis MD5(timestamp)
§4-3 (SIM Swap)Putusan Arbitrase T-Mobile (2024)Ganti rugi $33 juta. Satu SIM swap yang mengakibatkan pencurian cryptocurrency
§8-1 (IDOR → Password Change)Laporan Bounty HackerOne$500. IDOR memungkinkan perubahan password untuk pengguna lain
§7-1 (Stored XSS + IDOR)Label Studio GHSA-2mq9Full ATO. Rantai Stored XSS + IDOR melalui field custom_hotkeys
§1-3 (Mass Assignment)Shopify Privilege EscalationPembuatan akun admin tanpa batas. Manipulasi parameter role saat registrasi
§1-2 (Invalid Email Registration)HackerOne Signup Process$3.750. Pembuatan akun dengan email tidak valid yang mengandung karakter khusus (%)
§6-1 (Missing Authentication)CVE-2024-5910 (Palo Alto Expedition)CVSS 9.3. Autentikasi hilang untuk fungsi kritis → admin ATO (ini adalah kerentanan missing-authentication, bukan Host Header Poisoning)
§8-2 (E-Commerce Checkout Session Hijack)CVE-2025-61922 (PrestaShop Checkout < 5.0.5)CVSS 9.1. Zero-click ATO melalui endpoint Express Checkout: POST yang tidak terautentikasi dengan email korban menghasilkan sesi terautentikasi
§3-3 (JWT None Algorithm)CVE-2025-6023 (Grafana)Tinggi. Perbaikan tidak lengkap → path traversal + open redirect → Full ATO
§3-3 + §4-2 (Session + MFA)CVE-2025-1723 (ADSelfService Plus)Session mismanagement memungkinkan akses tidak terotorisasi ke data enrollment pengguna saat MFA tidak diaktifkan
§7-1 (Self-XSS → ATO)Facebook Self-XSS Payments$62.500. Self-XSS dalam alur pembayaran yang dirangkai menjadi Full ATO
§7-1 (FXAuth Token Abuse)Facebook Two-Click ATO$30.000. Penyalahgunaan token FXAuth untuk two-click ATO

Tool Deteksi

Tool Ofensif (Serangan / Pengujian)

ToolCakupan TargetTeknik Inti
Burp Suite (Proxy)Alur autentikasi penuhIntersepsi permintaan, parameter tampering, pemindaian otomatis
Evilginx (Reverse Proxy)Phishing AiTMReverse proxy penangkap token sesi/MFA secara real-time
Modlishka (Reverse Proxy)Phishing AiTMPembuatan sertifikat otomatis + penangkapan sesi real-time
SquarephishV2 (Phishing)OAuth Device CodeOtomasi kampanye phishing Device Code
Nuclei (Scanner)Pola ATO yang sudah diketahuiPemindaian kerentanan berskala besar berbasis template
ffuf / Turbo Intruder (Fuzzer)Rate Limiting / OTPPengujian brute-force berkecepatan tinggi dan race condition
jwt_tool (JWT)Token JWTAlgoritma none, key confusion, claim tampering
Autorize (Ekstensi Burp)IDOR / Access ControlPengujian verifikasi otorisasi otomatis
Hydra / Medusa (Brute-Force)Endpoint loginBrute-force password terdistribusi

Tool Defensif (Pertahanan / Deteksi)

ToolCakupan TargetTeknik Inti
Cloudflare Bot ManagementCredential StuffingDeteksi bot berbasis AI + analisis perilaku + threat intelligence
NetaceaSemua percobaan ATOMesin Intent Analytics — prediksi niat sesi
Imperva ATO ProtectionPerlindungan loginModul perlindungan login zero-latency
Proofpoint ATO ProtectionEmail + AkunThreat intelligence + deteksi anomali berbasis ML
Datadog ATO ProtectionAplikasi penuhPemantauan perilaku runtime + pemblokiran otomatis
Have I Been Pwned (HIBP)Kredensial yang bocorPencarian database email/password yang bocor
Passkeys / FIDO2 WebAuthnAutentikasi penuhAutentikasi berbasis hardware yang tahan phishing

Ringkasan: Prinsip Inti

Akar Masalah: Ketidaklengkapan Authentication State Machine

Akar masalah dari kerentanan Registrasi & Account Takeover adalah bahwa authentication state machine pada dasarnya tidak lengkap. Akun dalam aplikasi web mengalami lusinan transisi state — pembuatan, verifikasi, autentikasi, pemeliharaan sesi, pemulihan, penautan, dan penonaktifan — dan di setiap titik transisi, invariant berikut harus terpenuhi: “Apakah entitas yang melakukan tindakan ini adalah pemilik sah akun ini?” Jika invariant ini terputus bahkan pada satu transisi saja, maka ATO terjadi.

Mengapa Perbaikan Inkremental Gagal

Attack surface ATO bersifat kombinatorial. Fitur-fitur individual (registrasi, login, reset, OAuth, MFA) masing-masing mungkin diimplementasikan dengan benar, namun kerentanan baru muncul dari interaksi di antara mereka (Classic-Federated Merge, rantai OAuth + Reset, XSS + CSRF + Email Change). Selain itu, MFA — yang dianggap sebagai solusi mujarab — dapat dilewati melalui SIM Swap, proxy AiTM, brute-force OTP, dan Device Code phishing. Penyerang bisa memilih saluran yang paling lemah, sementara defender harus melindungi semua saluran.

Solusi Struktural

Solusi struktural yang sesungguhnya berlandaskan tiga prinsip:

  1. Phishing-Resistant Authentication: Passkeys/FIDO2 WebAuthn memastikan rahasia autentikasi tidak pernah meninggalkan perangkat dan terikat pada domain, secara struktural memblokir AiTM dan phishing.
  2. Session-Device Binding: Mengikat token sesi secara kriptografis ke karakteristik hardware perangkat yang menerbitkannya, mencegah penggunaan ulang token setelah dicuri (Token Binding, DPoP).
  3. Atomic State Transition Verification: Memverifikasi ulang konteks autentikasi pada setiap titik perubahan state (password reset, perubahan email, penautan OAuth, penonaktifan MFA), dan secara atomik menginvalidasi semua token/sesi terkait yang sebelumnya ada.

Hingga ketiga prinsip ini diterapkan sepenuhnya, Registrasi & Account Takeover akan terus menjadi kelas kerentanan yang paling sering terjadi dan paling berdampak.


Referensi

  • Microsoft Security Response Center, “Pre-hijacking Attacks on Web User Accounts” (2022)
  • Sudhodanan & Paverd, “Pre-hijacked Accounts: An Empirical Study of Security Failures in User Account Creation on the Web” (USENIX Security 2022)
  • PortSwigger Web Security Academy — Password Reset Poisoning, Race Conditions, OAuth
  • OWASP Testing Guide — Authentication Testing, Session Management Testing
  • OWASP Cheat Sheet Series — Forgot Password, Session Management, Credential Stuffing Prevention
  • HackTricks — Reset/Forgotten Password Bypass, 2FA/MFA/OTP Bypass
  • Proofpoint Threat Insight — “Access Granted: Phishing with Device Code Authorization” (2025)
  • Positive Security — “Ransacking Your Password Reset Tokens”
  • Sentry Security Blog — “Cracking Password Reset Mechanisms”
  • Obsidian Security — CVE-2025-34291 Langflow Disclosure
  • OPSWAT Unit 515 — Grafana CVE-2025-6023
  • Microsoft MSRC — “Weaponizing Cross-Site Scripting” (2025)
  • Youssef Sammouda — “Multiple XSS in Meta Conversion API Gateway” (2026)
  • Bugcrowd — “Breaking the Chain: Exploiting OAuth and Forgot Password for Account Takeover”
  • Keepnet Labs — “SIM Swap Fraud 2025: Stats, Legal Risks & 360° Defenses”
  • Vectra AI — “The Hidden Risks of SMS-Based Multi-Factor Authentication”
  • AppOmni — “How to Handle Increased Account Takeover Risks from Recent Credential Dumps” (2025)
  • CVE-2025-61922: PrestaShop Checkout Express Checkout Account Takeover — https://dhakal-ananda.com.np/blogs/cve-2025-61922-analysis/
  • HackerOne Reports — Berbagai pengungkapan bug bounty yang direferensikan dalam tabel CVE/Bounty

Dokumen ini dibuat untuk keperluan riset keamanan defensif dan pemahaman kerentanan.