Kategori
IT Pentesting Security

Dari Source Code & Sensitive Information Disclosure menjadi Admin Account Takeover

Bug ini saya temukan di tahun 2020 pada sebuah layanan FinTech di Indonesia dimana dengan mengeksploitasi bug tersebut, saya bisa mendapatkan akun admin dan menggunakannya untuk login ke dashboard admin layanan FinTech tersebut.

Berawal dari mengakses website layanan FinTech yang beralamat di https://redacted.co.id, sekilas tidak ada yang salah dengan website tersebut, kemudian saya mencoba menambahkan /.git/ dibelakang url sehingga menjadi https://redacted.co.id/.git/, kemudian saya mendapatkan error 403 yang menandakan url tersebut valid tetapi statusnya forbidden.

Gambar 1. Url valid tetapi forbidden

Kemudian menggunakan tools gitdumper dan gitextractor, saya berhasil mendapatkan source code asli dari web FinTech tersebut.

Gambar 2. Source code berhasil di download

Berdasarkan source code yang saya dapatkan tersebut, saya mencoba menganalisa dan menemukan beberapa folder yang menarik seperti folder “BNI” dan “db”.

Gambar 3. Source code web target

Kemudian di dalam folder “BNI”, saya menemukan script PHP dengan nama payment-notification.php.

Gambar 4. Isi folder “BNI”

Saya membuka file payment-notification.php tersebut menggunakan text editor dan menemukan variabel menarik didalamnya, yaitu variabel $client_id dan $secret_key yang kemungkinan digunakan untuk transaksi menggunakan Bank BNI.

Gambar 5. Isi file payment-notification.php

Kemudian di dalam folder “db”, saya menemukan sebuah file database dump dengan nama kbid_db.sql.

Gambar 6. Isi folder “db”

Selanjutnya saya mencoba membuka file kbid_db.sql tersebut menggunakan text editor. Didalamnya saya menemukan query sql yang menarik, yang berisi perintah untuk menyisipkan beberapa akun admin dan kredensialnya kedalam tabel “Admins”. Bagian yang menarik adalah berupa username di dalam kolom “Admin_Name” dan juga password yang berbentuk md5 hash di dalam kolom “Admin_Password”.

Gambar 7. Isi file kbid_db.sql

Kemudian saya mencoba mendapatkan password dari salah satu user admin yaitu ramli dengan melakukan proses reverse md5 hash kembali ke bentuk aslinya menggunakan salah satu tool online yaitu https://md5online.org/md5-decrypt.html dimana md5 hash yang saya masukkan ternyata menemukan kecocokan dengan database milik md5online.org, sehingga didapatkan untuk username ramli, passwordnya adalah 5t4r3e2w1q.

Gambar 8. Hasil reverse md5 hash

Kemudian saya mencoba masuk ke dashboard admin dengan mengakses https://redacted.co.id/admin/login.php dan masuk menggunakan kredensial yang sudah saya dapatkan sebelumnya yaitu username ramli dan password 5t4r3e2w1q dan hasilnya saya bisa masuk ke dashboard admin.

Gambar 9. Sukses masuk ke dashboard admin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *