Leveling Up the Wrong Way: Exploiting API Vulnerabilities in Game Progression
Jadi kali ini saya memainkan game berbasis web3 untuk mendapatkan Airdrop nantinya, dan game ini bergenre RPG. Di game ini kalian harus menyelesaikan misi dan menaikan level. Untuk sedikit ss gamenya ada dibawah ini, saya hanya tampilkan levelnya saja ya :
Beberapa hari saya memainkan game ini tanpa ada rasa penasaran dan susah juga untuk menaikan level nya, sampai pada akhirnya rasa penasaran itupun muncul, saya jadi ingin melihat request API yang ada pada game ini.
Jadi langsung saja saya coba burpsuite dan sambil mainkan
untuk beberapa saat saya tidak menemukan hal aneh sih jadi lanjut aja main keasikan, sampai ada hal aneh yang membuat mata saya melirik
Bisa kalian lihat kira kira apa yang menarik ? yaps kalian bisa check ada 3 endpoint yang bikin mata saya melirik :
- POST /w01_user-get
- PUT /v0/b/darkidle2-backup/xxxxx
- POST /w01_user-set
dan setelah saya cek lebih membuat saya semangat lagi, setelah saya check untuk endpoint no 1 itu untuk mendapatkan data user kita seperti leveling account, level immortal power seperti attack power dll. Lalu di endpoint ke 2 itu untuk sepertinya untuk checkpoint ( sepertinya ya saya gatau aowkoawkw ), nah disini yang menarik yaitu pada endpoint no 3 saya rasa endpoint ini ya untuk set data user terbaru seperti misal setelah naik level atau setelah upgrade item apapun dia akan melakukan user-set ini.
Ok langsung saja kita coba, tapi pertama saya tidak nyoba langsung menjalanka /w01_user-set ini secara langsung karena setelah saya coba gagal, kemungkinan ada value value yang dynamic dan gabisa asal rubah jadi harus ubek ubek clientnya, jadi saya cobanya dengan intercept pada endpoint /w01_user-get lalu rubah responsenya pertama saya rubah response untuk level nya
bisa kalian cek untuk level saya disini sebelumnya adalah 3000 ( ini juga setelah saya test sebelumnya hahaha ) .
Langsung saja saya intercept request dari si /w01_user-get
bisa kalian cek disini ada response level yaitu dengan value 3000, maka langsung saya rubah valuenya menjadi 4000. Lalu langsung saya forward requestnya. Dan boom level saya berubah
Kita mainkan dulu sebentar sama upgrade upgrade menunggu /w01_user-set muncul di HTTP History burpsuitenya agar tersimpan, karena kalau tidak menunggu itu kalau saya close gamenya dan buka lagi levelnya akan balik seperti semula. Makannya disini saya menunggu /w01_user-set lalu saya coba close dan buka gamenya masih aman dan tidak berubah rubah lagi levelnya.
Ini juga berguna bukan buat level saja, tapi buat immortal upgrade yang ada di game, seperti ss dibawah ini
bisa dilihat levelnya 3000 semua, untuk caranya masih sama seperti diawal cukup cari valuenya dan rubah valuenya dan boom!
Timeline :
~ 16 September 2024: Reported
~ no one reply