Exploiting Insecure Firestore Database!

Aminudin
3 min readOct 10, 2023

--

halo semuanya kembali lagi dengan saya, ketika sedang menulis ini saya adalah seorang pencari bug ketika senggang saja, jadi mon maap jika ada salah kata kata.

Ok singkat cerita saya menjelajah di twitter dan menemukan sebuah project pada jaringan NEAR, singkatnya project ini berfungsi untuk generate NFT dan otomatis MINT lalu sell NFT nya di project tersebut.

Mon maap kalau salah dalam pengertiannya, cuman istilah singkatnya yang saya tahu adalah demikian. Jadi, langsung saya coba platform project ini dengan intinya seperti biasa adalah mencari Bug pada setiap project yang saya temukan.

Pertama dari rentetan yang saya coba adalah mencoba edit profile lalu disambi inspect element, siapa tau ada bug yang nyantol ye kan, khususnya si IDOR. Lalu saya coba edit dan Inspect Element lalu hasilnya adalah

Lalu setelah dicek ternyata dia menggunakan firestore sebagai API dan Database nya, setelah itu pupus harapan untuk mendapatkan IDOR. Habis itu saya tidak menyerah dan lanjut ke step pengecekan saya seperti biasanya yaitu Inspect Element lalu kebagian Sources, dan ya saya menemukan semua ENV tidak ter encrypt dan disana banyak env env yang critical menurut saya.

Env Env critical tersebut diantaranya adalah private key dari wallet address, pinata secret key dll. Lalu saya coba env envnya dan ya semuanya bisa saya akses, bisa dilihat pada ss dibawah ini

Ya saya dapet mengakses wallet dari beberapa private key yang saya temukan setelah melakukan Inspect Element tersebut.

Setelah semua itu sebenernya saya langsung lapor karena menurut saya udah cukup, tapi ada yang menarik, saya menemukan bahwa ternyata projectnya open-source dan bisa saya download di github.

Kalian inget sebelumnya saya menemukan ENV yang semuanya terbuka nah saya terpikir dijalankan dilocal scriptnya tersebut dengan ENV yang tadi saya temukan, dengan harapan bahwa saya bisa inject user data dari local tersebut.

Lalu ketika saya coba download dan jalankan local, ya dan sepertinya semua data di manage dari client, bisa kalian liat screenshot dibawah ini

Dari situ kita bisa lihat bahwa user bisa kita mainkan karena semua data di proses di client. Lalu saya coba dan boom

Saya bisa melakukan manipulasi dengan menggunakan method method dari firestore dengan env yang saya temukan tadi, di ss ini saya bisa melisting semua data user.

Timeline :

~ 4 April 2023 : Bug Reported

~ 4 April 2023 : Bug Confirmed

--

--