"Login" PicoCTF Writeup

Analis Siber Purwakarta - Admin. Penulis akan kembali membagikan pengalaman menyelesaikan sebuah soal CTF yang disediakan oleh PicoCTF. Soal yang dibuat oleh BROWNIENMOTION ini bernama Login, dan menuntut kita agar dapat untuk mengevaluasi isi dari formulir login dari sisi aplikasi client.

Kesan awal ketika memasuki aplikasi ini sangat sederhana. Isinya hanyalah berupa formulir login HTML dan CSS, dengan file Javascript didalamnya. Kurang lebih struktur HTML dalam aplikasi ini adalah sebagai berikut:


Struktur HTML Dalam Aplikasi Client
Sumber: Dokumentasi Penulis


Jika kita mengakses file CSS maka yang akan ditemukan hanyalah sebuah style untuk mendesain aplikasi. Berbeda jika kita mengakses file Javascript, terdapat beberapa mekanisme dan informasi didalamnya seperti verifikasi nama username dan password.


Struktur CSS dalam Aplikasi Client
Sumber: Dokumentasi Penulis


Terdapat celah keamanan dalam Fungsi perulangan aplikasi client yang dapat kita baca pada baris 10-12. Fungsi perulangan tersebut memuat sebuah informasi berupa nama username dan password yang valid namun terenkripsi oleh algoritma Base64. Hal ini dapat diketahui dari penggunaan method btoa() yang dibalik menjadi atob() pada baris ke-12.


Isi program Javascript dalam Aplikasi Client
Sumber: Dokumentasi Penulis


Sandi "YWRtaW4" pada baris ke-12 bila kita dekripsikan maka akan memuat informasi berupa username dengan nama: admin. Bila kita menginput nama selain "admin" maka aplikasi akan merespon dengan memunculkan dialog box dengan isi pesan "Incorect Username".


Proses dekripsi username pada Aplikasi Client
Sumber: Dokumentasi Penulis

Begitu pula dengan password, pada aplikasi client ini password yang disandikan menjadi "cGljb0NURns1M3J2M3JfNTNydjNyXzUzcnYzcl81M3J2M3JfNTNydjNyfQ" yang terdapat pada baris ke-12. Password tersebut merupakan sebuah Flag untuk keseluruhan apikasi.



Hasil akhir dari soal CTF "Login" PicoCTF
Sumber: Dokumentasi Penulis

Kesan pertama bagi penulis untuk menyelesaikan soal CTF adalah menuntut kita untuk membaca beberapa asset-asset dan endpoint yang terdapat dalam aplikasi. Memahami jenis, dan cara menerapkan enkripsi juga penting, hal ini terdapat kaitannya dengan bagaimana caranya agar kita dapat mengekstrak atau menyadikan sebuah informasi.


Daftar Pustaka:
https://developer.mozilla.org/en-US/docs/Web/API/btoa

Komentar