Halo administrator skilvul…
Dengan senang hati kami ingin kembali melaporkan temuan kerentanan pada situs Skilvul berupa “weak password reset implementation”, kerentanan ini akan kami reproduksi dengan mencantumkan gambar agar tidak terjadi miss komunikasi dengan pihak skilvul dikarenakan kerentanan ini tergolong dalam Taxonomy P2 (High).
Proof of Concept:
Pada suatu hari ojan sedang memantau forum peretas untuk mendapatkan kredensial akun yang bocor ia melihat sebuah utas dengan format email:password (victim@mail[.]com:pass123), ia berinisiatif untuk melakukan serangan Credential Stuffing targetnya yaitu situs skilvul[.]com
Pada halaman login ojan menginput kredensial login yang ia dapat dari forum tadi, dirinya berhasil login kehalaman skilvul[.]com tanpa adanya rintangan 2FA (Two Factor Authentication).
Setelah berhasil login ia berinisiatif untuk mengubah password milik korban, tapi ia terkendala oleh autentikasi “Password Lama”.
Alhasil demi mendapatkan akun tersebut ia pun melakukan forensik menggunakan akun baru dan dirinya memahami bagaimana autentikasi ini bekerja:
Validasi password lama → True → Lakukan autentikasi pengubahan password → Password berhasil diubah
Dirinya berhasil menciptakan logika untuk melewati autentikasi password lama dengan cara melompati autentikasi melalui POST Data buatan sehingga jalur autentikasi berubah menjadi seperti berikut ini:
Lakukan autentikasi pengubahan password → Password berhasil diubah
Host:
api[.]skilvul[.]com
Requests:
[{“operationName”:“resetPassword”,“query”:“mutation resetPassword($token: String, $password: String!) {\n resetPassword(data: {token: $token, password: $password}) {\n success\n error\n __typename\n }\n}\n”,“variables”:{“password”:“Halo123”}}]
Yeah itulah permintaan data yang harus ia buat & kirimkan melalui POST Method dengan begitu ojan tidak perlu menginput “Password Lama” milik korban.
Boom! dengan mengirimkan permintaan buatan, dirinya berhasil mengubah password korban tanpa autentikasi validasi password lama dan terjadilah Account Takeover
Patching Kerentanan:
Secara teori, administrator website dapat menambal kerentanan Weak Password Reset Implementation ini dengan cara menggabungkan requests validasi password lama dan autentikasi password baru menjadi satu permintaan saja.
Sedangkan untuk menghindari serangan Credential Stuffing ada baiknya pihak Skilvul menambahkan Autentikasi Dua Faktor (2FA)
Nenek saya memiliki sebuah sistem keamanan berteknologi tinggi → sebuah paku berkarat yang ia gunakan untuk mengunci pintu.