Membangun Web MiniCTF dengan Python Flask

Muh Rezki

Sosial Media


0 orang menyukai ini
Suka

Summary

Project Web Mini CTF (Capture The Flag) ini merupakan platform interaktif yang dirancang untuk memberikan pengalaman belajar sekaligus tantangan di bidang cyber security. Melalui project ini, pengguna dapat mengasah kemampuan mereka dalam menganalisis, memecahkan masalah, dan menemukan celah keamanan pada berbagai skenario yang disimulasikan.

Description

Alur Program

Inisialisasi Aplikasi:

  • Aplikasi Flask diinisialisasi di app.py, di mana koneksi ke database juga dibuat menggunakan kelas Database dari functions.databases.py.
  • Fungsi init_app dari auth.py dipanggil untuk menginisialisasi modul autentikasi dengan database.

Autentikasi Pengguna:

  • Pengguna dapat mendaftar dan login melalui rute yang ditangani oleh blueprint auth.
  • Setelah login, username pengguna disimpan dalam session untuk memverifikasi bahwa pengguna telah terautentikasi sebelum mengakses halaman utama.
     

Halaman Utama:

  • Rute / (halaman utama) hanya dapat diakses oleh pengguna yang telah login. Jika pengguna belum login, mereka akan diarahkan ke halaman login.
  • Di halaman utama, pengguna dapat melihat berbagai tantangan CTF yang tersedia, termasuk tantangan kriptografi, forensik, dan Reverse engineering.

Tantangan CTF:

  • Setiap tantangan memiliki modal yang dapat dibuka dengan mengklik tombol "Open Challenge". Modal ini berisi deskripsi tantangan, file yang dapat diunduh, dan formulir untuk memasukkan flag.
  • Setelah pengguna mengisi flag dan mengirimkan formulir, aplikasi akan memanggil fungsi validasi yang sesuai dari cryptograph.py untuk memeriksa apakah flag yang dimasukkan benar.

Validasi Flag:

  • Fungsi validasi di cryptograph.py memeriksa apakah flag yang dimasukkan oleh pengguna sesuai dengan flag yang benar untuk tantangan tersebut.
  • Jika flag benar, pengguna akan menerima pesan sukses, dan jika salah, mereka akan menerima pesan kesalahan. Pesan ini ditampilkan di halaman utama setelah pengguna diarahkan kembali.

Pesan Flash:

  • Aplikasi menggunakan pesan flash untuk memberikan umpan balik kepada pengguna setelah mereka mencoba mengirimkan flag. Pesan ini akan hilang setelah beberapa detik.

Logout:

  • Pengguna dapat logout dari aplikasi, yang akan menghapus informasi session mereka dan mengarahkan mereka kembali ke halaman login.

 

Modals
Aplikasi menggunakan modals untuk menampilkan informasi tantangan dan formulir input flag, memberikan pengalaman pengguna yang lebih interaktif.

 

Source Code :
https://github.com/Rezkiii/Bisa.Ai-Capstone


credits :
Ahmad Rafly Wiratama
Faizal Rofik Khamdani
Fahri Ardiansyah

Informasi Course Terkait
  Kategori: Cyber Security
  Course: Dasar - Dasar Python