Diberikan sebuah lab bernama Java_Code_Analysis!?!, berdasarkan hasil observasi awal cara untuk menyelesaikan lab ini adalah dengan cara membaca buku bernama Flag. Lalu kita juga diberikan sebuah kredential untuk login dan source code web target.
Pada saat saya mengunjungi web target saya melihat fitur login dan saya
menggunakan kredensial yang sudah di berikan yaitu:
username:
user
password: user
Setelah saya memasukkan kredensial di atas dan login saya diarahkah ke menu dashboard dan saya melihat ada buku bernama flag tapi sayangnya membutuhkan hak akses Admin sedangkan saya masih di level Free.
Saya mencoba untuk menganalisis kode Java yang sudah di berikan dan pada saat saya membaca file UserService.java, saya menemukan kata kunci JWT yang kemungkinan ini berhubungan dengan token JWT.
Saya mencoba melihat localstorage pada web target benar saja saya menemukan sebuah token JWT.
Saya langsung menyalin token JWT yang saya temukan dan saya menggunakan jwt.io. Pada saat saya mendecode token JWT saya menemukan sebuah parameter role ada kemungkinan saya harus mengubah parameter ini.
Pada saat saya menganalisis kembali kode Java saya menemukan sebuah secret pada file SecretGenerator.java.
Saya menemukan hal menarik pada file data.sql yang berisi roles values. Saya mengubah parameter role, userId, email dan secret menjadi Admin untuk membaca buku bernama flag.
Tapi sayangnya pada saat saya mengakses buku Flag terjadi error. Saya mencoba mengubah userId menjadi 1, masih error. Akhirnya saya mencoba mengubah userId menjadi 2 dan ternyata berhasil saya mendapatkan flag-nya.