Kategori
IT Jaringan Pentesting Security

Bagaimana saya mendapatkan Rp. 993 Juta dari sebuah Bug Simple

Yap, anda tidak salah baca, di artikel ini saya akan menjelaskan bagaimana saya mendapatkan rekening online berisi saldo Rp. 993 Juta dengan akses full kedalam rekening tersebut hanya dengan bug simple yang dahulu sempat populer, yaitu bug Source Code Disclosure.

Sekitar 2 Tahun lalu (Tahun 2020), saya masih rajin melakukan aktivitas bug hunting di banyak website & aplikasi dimana beberapa diantaranya mendapat temuan critical dan (Alhamdulillah) mendapat reward dari pemilik website dan aplikasi tersebut. Salah satu diantaranya saya berhasil mendapatkan akses full ke rekening online dari salah satu penyedia layanan fintech di Indonesia. Saya bisa mendapatkan akses tersebut berkat bug yang saya temukan yaitu Source Code Disclosure dimana dalam hal ini fintech tersebut menggunakan Git untuk Version Control System seluruh Source Code aplikasi mereka.

Langkah awal yang saya lakukan seperti biasa adalah mencari-cari layanan fintech yang ada kemudian mencoba mengeksplorasi websitenya, dari hasil eksplorasi tersebut saya menemukan sebuah tanda bahwa layanan fintech tersebut menggunakan Git sebagai Version Control System mereka.

Gambar 1. Terdapat folder .git didalam server

Kemudian menggunakan Git Dumper, saya mencoba untuk mendapatkan isi seluruh folder .git tersebut dan ternyata bisa

Gambar 2. Git dumper berhasil mengunduh isi dari folder .git

Setelah berhasil mendapatkan isi dari folder .git tersebut, kemudian saya menggunakan Git Extractor untuk mendapatkan file dan folder berisi Source Code yang ada didalamnya

Gambar 3. Git Extractor berhasil mengekstrak isi dari folder .git
Gambar 4. Hasil extract dari folder .git

Kemudian saya melakukan eksplorasi terhadap source code tersebut dan menemukan sebuah file yang menarik dengan nama connectiondetail.php

Gambar 5. File connectiondetail.php

Saya membuka file connectiondetail.php tersebut menggunakan text editor dan menemukan beberapa variabel menarik didalamnya yaitu variabel-variabel untuk mengakses database seperti $host, $user dan $password yang berisi alamat server database dan kredensial yang digunakan untuk mengakses database, kemudian ada juga variabel $send_grid_email, $sendgrid_logo dan juga ada variabel $sendgrid_api_key yang bisa digunakan untuk mengirim email menggunakan alamat email perusahaan. Tetapi variabel yang paling menarik bagi saya adalah variabel $api_key yang berisi API Secret Key akun [redacted] yang tentu saja berisi uang milik perusahaan dimana dengan menggunakan API Secret Key tersebut kita bisa melakukan transaksi uang masuk/keluar dengan menggunakan API Documentation yang disediakan [redacted].

Gambar 6. Isi file connectiondetail.php berisi parameter-parameter penting

Untuk menguji apakah saya bisa melakukan transaksi menggunakan API Secret Key akun [redacted] tersebut, saya mencoba mengecek saldo menggunakan API Documentation dari [redacted] dan API Secret Key yang ada. Dari hasil percobaan saya berhasil mendapatkan informasi jumlah saldo yang ketika laporan tentang ini dibuat dan dikirim, berjumlah Rp. 993.920.000 (Sembilan Ratus Sembilan Puluh Tiga Juta Sembilan Ratus Dua Puluh Ribu Rupiah). Sebenarnya selain mengecek saldo, saya juga bisa melakukan proses transfer ke rekening bank lain menggunakan API Documentation [redacted] di alamat https://[redacted], hanya saja karena ini merupakan kegiatan bug hunting, saya tidak akan melakukan hal tersebut karena merupakan sebuah tindakan yang melanggar hukum lebih jauh lagi.

Gambar 7. Berhasil mendapatkan akses full ke rekening milik fintech

Karena saya sedikit malas untuk membuat timeline, saya screenshot saja chat saya dengan salah satu staf kantor fintech tersebut. Screenshot chat saya bisa dilihat di sini.

Tinggalkan Balasan

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