Sebenarnya challenge ini dibuat dari ide teman saya yang kebetulan juga saya ikut membantu dalam proses development dan deployment dimana challenge ini terkait dengan Web Exploitation dan Cryptography jadi langsung saja

LogFrenzy π΅οΈββοΈπ»
Selamat datang di LogFrenzy, tantangan seru untuk menguji kemampuan analisis log dan regex! π Di sini, peserta akan dihadapkan pada log penuh petunjuk tersembunyi. Tugasnya? Teliti, bongkar pola, pecahkan regex, dan temukan flag yang tersembunyi! π
Kecepatan dan ketelitian adalah kunci, tapi kreativitas dalam memecahkan masalah juga sangat diperlukan. Siap untuk tantangan ini di LogFrenzy? π₯
Level: Medium
Kategori: Web Exploitation & Cryptography
Hadiah (First Solved): Rp 30.000 π
URL Challenge:
https://logfrenzy.siber-tech.web.id
Flag: bhitech{...}
#ChallengeAccepted #LogLife #CTF #Bhitech
Bisa dibaca pada deskripsi untuk lebih jelas dan intinya pada deskripsi diberikan suatu clue yaitu regex dan analysis.

Jika kita masuk pada halaman login terdapat 2 form input yaitu username dan password

Dimana jika view source pada HTML code terdapat regex dari username dan password jadi kita diminta untuk melakukan bypass dan memecahkan validasi regex tersebut.
username regex:
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*])[A-Za-z0-9!@#$%^&*]{12,20}$
password regex:
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*])(?!.*(\d){2,})(?!.*([A-Za-z0-9]){2,})[A-Za-z0-9!@#$%^&*]{20,30}$
Jika kita memahami regex sangat mudah untuk memecahkan pattern dari validasi tersebut, pada regex username terdapat pola dimana kita harus menginputkan character mulai dari huruf besar, kecil, angka dan special character hingga 12 sampai 20 dan pada password meminta hingga 20 sampai 30 character.

Mulai analysis manual menggunakan webtools https://regex101.com/ dan lakukan matching pada pattern regex disini kita inputkan dengan Bhitech!@123 dan terlihat matching ya selanjutnya kita analysis pada bagian password

pada password kita juga memiliki pattern yang cocok menggunakan string Bhitech123!A@testing jadi kita sudah menemukan username dan password
user: Bhitech!@123
pass: Bhitech123!A@testing
Jadi kita bisa lanjut untuk login..

Dan kita berhasil masuk dashboard, dan pada tampilan dashboard terdapat 3 list menu dan kita diminta untuk mendownload file log

Pada access log di file pertama tidak ada yang menarik hanya akses log dan menampilkan request path dari client jadi kita lanjut yang kedua

pada file error log kedua juga tidak ada hint atau clue jadi kita skip dan lanjut pada file user action yang ketiga

Dan disini menarik jadi pada file ketiga ini berisi log action user yang sudah login dan terdapat name cookie dari object User Action dimana berisi key session_id dan value semacam unique number.
Kemungkinan ini merupakan suatu valid session dari user sebelumnya karena dari key objectnya menunjukkan cookie jadi kita masukkan cookie dengan name session_id dan memilih acak salah satu value

Benar saja setelah input cookies, pada header website menampilkan suatu pesan yang dimana disana kita menemukan suatu cipher text
Kode rahasia:
3a273b1f001a3034070509163b24610f3a29183c211c550b3c101d0d3a2d692261342649363e2758175836282f
Petunjuk XOR:
Ingat, jika A ^ B = C, maka C ^ A = B!
Semoga ini membantu!
Format flag: bhitech{...}
Dan kita juga disuguhkan suatu petunjuk terkait dengan XOR. jadi XOR itu merupakan operasi cryptography ya dimana jika 1 ^ 1 = 0 maka 1 ^ 0 =1 atau gampangnya jika bilangan yang di XOR itu sama contoh 1 ^ 1 = 0 atau 0 ^ 0 = 0 dan sebaliknya jika bilangan berbeda maka hasilnya 1
Bisa asumsikan disini kita mempunyai ciphertext tapi tidak mempunyai key jadi rumusnya:
flag ^ key = ciphertext(kita punya)
jika
cipher ^ key = flag(kita belum punya)
disini kita membutuhkan key dimana kita sudah tau sebagian dari format flag yaitu bhitech{} jadi jika
cipher ^ flag(sebagian) = key
jadi kita perlu lakukan XOR dengan sebagian flag untuk mendapatkan key sehingga kita bisa melakukan decrypting pada ciphertext
ada 2 cara ya kita bisa menggunakan webtools maupun membuat suatu program sendiri menggunakan python. Simplenya kita bisa menggunakan webtools dari cyberchef https://gchq.github.io/CyberChef/

Pertama kita convert dulu dari hex karena ciphertext disana di encode menggunakan hexadecimal lalu kedua kita pilih XOR

Terlihat ya saat kita input bhitech(6 character) sebagian output menampilkan XORkey(6 character) karena kita menginput 6 character jadi hasil yang diambil juga 6 character yang dimana kita berhasil mendapatkan suatu key yaitu XORkey dan jika masukkan key yang valid

Maka outputnya akan menampilkan flag yang benar atau bisa juga kita membuat simple program menggunakan python

dan jika kita run

Flag: bhitech{Unlock3d_P@ssw0rd_Of_T1m3_C0nqu3r!ng}
Cukup sekian semoga bermanfaat, keep learning and exploring
