Description

Solving
Identify
kita diberi sebuah website yang didalamnya dapat mendownload aplikasi pico-bank.apk disini kita akan melakukan reverse engineering dengan menggunakan Jadx
setelah mengimpor file pico-bank.apk kita akan mencari string/karakter sesuai dengan yang ada di petunjuk soal, dimana ada credential user yang bocor dan user tersebut bernama johnson
dapat ditemukan adanya credential dengan username johnson dan password tricky1990 di com.example.picobank.Login
selanjutnya saya mencoba menginstall aplikasi dan memasukan credential tersebut
didalam aplikasi kita diminta untuk memasukan OTP, jadi kita coba cari OTP di source code aplikasinya
ditemukan kode OTP yang bocor di res/values/strings.xml dan saat dicoba di aplikasi, akhirnya kita bisa masuk ke menu utama aplikasi
Flag Part 2
didalam menu notifikasi aplikasi, saya menemukan petunjuk dimana flagnya disimpan, flag pertama kemungkinan ada di respon server setelah kita memasukan OTP
di dalam source code com.example.picobank.OTP saya menemukan function dan endpoint yang menangani kode OTP
dapat terlihat dengan jelas, bahwa endpoint yang merespon permintaan OTP adalah endpoint /verify-otp, kita coba masukan OTP tadi ke endpoint tersebut
respon dari request yang kita buat berisi flag part ke2
{"success":true,"message":"OTP verified successfully","flag":"s3cur3d_m0b1l3_l0g1n_c0085c75}","hint":"The other part of the flag is hidden in the app"}Flag Part 1
melalui hint respon server sebelumnya ditakan bahwa flag pertama disimpan didalam aplikasi, melalui hint yang kita dapat di awal, bisa disimpulkan bahwa flag, ada dibagian history transaksi
setelah dilihat history transaksi di aplikasi, jumlah uang di history terlihat suspicious, jumlah uang tersebut terlihat seperti angka biner
setelahnya kita coba convert seluruh jumlah history transaksi
1110000
1101001
1100011
1101111
1000011
1010100
1000110
1111011
110001
1011111
1101100
110001
110011
1100100
1011111
110100
1100010
110000
1110101
1110100
1011111
1100010
110011
110001
1101110
1100111
1011111dan angka history transaksi tersebut juga dapat ditemukan di com.example.picobank.MainActivity
setelah di decode, dapat ditemukan flag bagian pertamanya
picoCTF{1_l13d_4b0ut_b31ng_jadi flag dari chall ini adalah
picoCTF{1_l13d_4b0ut_b31ng_s3cur3d_m0b1l3_l0g1n_c0085c75}