React Native merupakan framework untuk membuat aplikasi native menggunakan Javascript. Aplikasi dibundling menjadi satu file .bundle yang berisi seluruh logika aplikasi. Hal ini menjadikan aplikasi rentan terhadap manipulasi kode. Beberapa celah keamanan yang mungkin ada meliputi manipulasi endpoint API, mengeksploitasi fitur Firebase, menemukan kredensial akun, atau penyimpanan data secara tidak aman.
2. ABOUT ME
• Bug Hunter
• Web Developer
• Author “Web Hacking For Beginner” Cyber Academy
• Penulis Buku Panduan Hacking Website Dengan Kali Linux
• Penulis Buku Kung-Fu Hacking dengan NMAP
• Contact me on Twitter & Instagram >> @xmrdoel
• Youtube : “MrDoel Hacking Tutorial”
4. REACT NATIVE
Sebuah framework yang digunakan untuk membuat
native apps menggunakan Javascript
Dirilis oleh Facebook pada tahun 2015 dan sampai
saat ini masih terus dikembangkan
10. TOOLS
SETUP >>
• Emulator / Android Phone
• APKTOOL
• APK Signer, (e.g : Uber Signer)
• Text Editor } myApp.apk
Prerequisite
Memiliki pengetahuan dasar tentang JavaScript
11. METHODOLOGY
APK File Decompile Search .bundle file Modify Source Compile & Sign
Install to phone
“Kita juga bisa menggunakan Proxy Intercept
Untuk melihat Endpoint, namun bagaimana jika
Aplikasi menggunakan Firebase?
19. Callable Google Cloud Function
Pengaturan logic pada Firebase masih terbatas
Google Cloud Function memiliki fitur dimana developer bisa membuat custom logic
23. Finding Secrets Firebase Credentials
>>
Terdapat beberapa cara untuk melakukan autentikasi ke Firebase, diantaranya…
• Email Link Authentication
• Password Authentication
• Google Sign
• Facebook Login
• Github
• dan lain-lain
https://firebase.google.com/docs/auth
24. Finding Secrets Firebase Credentials
>> Study Case
>>
Email dan password firebase pada file app.bundle
Email & password
How To Takeover Firebase??
Firebase API Key
Exploit To CRUD
27. Insecure Data Storage
“Insecure Data Storage adalah celah keamanan dimana
aplikasi menyimpan data sensitif pada file system
*biasanya hanya bisa diakses dengan hak akses root
Hal yang berbahaya adalah jika data disimpan pada SDCARD atau data filesystem (root) berisi data sensitif
seperti password, PIN dll
Study Case : Uncrypted HTTP Cache
32. Bypass Reset OTP Time
>>
Masukkan Kode OTP Anda
Pakai library apa?
5 Menit
33. Bypass Reset OTP Time
>>
300 Detik = 5 Menit
84600 Detik = 24 Jam
Attacker bisa brute-force kode OTP tanpa
Batas waktu
Chained with
No Rate Limit
OTP Time Not Checked on server
34. Bypass Boolean Logic
>>
Not OP
!0 = true
!1 = false
Comparison & Conditions
==
>
<
Boolean Function
Boolean (8 > 9)
35. Bypass Boolean Logic
>> Study Case
>>
BUY
Ibuku bukan ibumu
LIVE STREAMING
BUY
Azab pencuri korek
BUY
Aku Siapa?
Azab Pinjol Ilegal
Cek Pembelian Film
API Server
Terdapat
2 Movie
Verifikasi data
Tidak
Ditemukan
PLAY
36. Bypass Boolean Logic
>> Study Case
>>
How To Bypass??
PLAY
Ibuku bukan ibumu
LIVE STREAMING
Azab pencuri korek
Aku Siapa?
Azab Pinjol Ilegal
PLAY
PLAY
PLAY
38. WRAP UP
For Pentester
• File app.bundle berisi hampir semua logic dari aplikasi
• Keyword fetch biasanya sering digunakan dalam pemanggilan API
• Jika menggunakan firebase, cek metode autentikasi
• Catat library yang digunakan pada aplikasi (for bypass something)
For Developer :
• Lakukan proses deteksi keamanan secara berkala baik via Client-side dan Server Side
• Simpan API Key di lokasi yang aman, misalnya pada sisi server
• Pada saat menggunakan firebase, tidak direkomendasikan menggunakan metode Password Based Authentication
Attack vector pada materi ini masih terbatas