Web Exploitation adalah kategori yang mempelajari celah keamanan yang mungkin terdapat dalam fitur ataupun teknologi yang digunakan dalam pembuatan sebuah website. Mungkin yang paling sering kita dengan adalah SQL Injection, SQL Injection sendiri merupakan teknik untuk memasukan sebuah query yang sebetulnya tidak semestinya kedalam sebuah sistem, yang bertujuan agar menghasilkan sebuah kondisi dimana penyerang dapat memperoleh informasi. Contohnya melakukan SQL Injection pada halaman login, sehingga kita dapat login tanpa mengetahui username ataupun password. Selain SQL Injection, terdapat beberapa vulnerability yang telah dirangkum dalam OWASP Top 10 Application Security Risks - 2017. Untuk memahami soal yang terdapat pada kategori ini, penulis menyarankan untuk mencoba membuat sebuah website dari awal, seperti mempelajari apa itu web server, bahasa yang digunakan dalam pembuatan website (PHP, Javascript), framework yang sering digunakan, hingga version control system yang digunakan.
Soal yang akan kalian temui dalam kategori ini, biasanya memerintahkan kalian untuk menemukan celah keamanan yang nantinya akan memberikan kalian sebuah strings. Salah satu contoh sederhananya, kalian akan diminta untuk masuk kedalam halaman website dengan privilege admin. Selain itu terdapat beberapa soal yang meminta kalian melakukan local file inclusion(LFI), dan soal yang meminta kalian memanfaatkan sebuah kelemahan dapat upload file atau dapat disebut Unrestricted File Upload.
Cryptography adalah materi yang mengulas tentang jenis-jenis sandi yang digunakan untuk menyamarkan informasi/pesan. Pada perang dunia ke-2 tentara Nazi menyebarkan informasi kepada seluruh pasukannya melalui udara dan dapat diterima oleh sembarang orang. Namun dalam pengirimannya, pesan tersebut telah dienkripsi dengan menggunakan mesin Enigma. Sehingga walaupun pesannya diterima oleh orang lain, isi pesan tersebut tidak dapat diperoleh. Cryptography telah berkembang jauh sebelumnya, hal itu dapat dibuktikan dengan adanya Caesar chiper yaitu teknik mengganti huruf dalam pesan dengan 13 huruf setelahnya. Contohnya huruf A menjadi N dan huruf Z menjadi M. Dua contoh tersebut menggunakan Symmetric-key, artinya untuk melakukan encrpytion dan decryption harus menggunakan key yang sama. Sedangkan Asymmetric-key menggunakan key yang berbeda dalam proses encrpytion dan decryption. Contoh sederhananya adalah public key dan private key, dimana public key digunakan untuk melakukan enkripsi dan private key digunakan untuk dekripsi. Untuk lebih pahamnya dalam melihat contoh video berikut ini.
Tantangan dalam mempelajari topik ini adalah, banyaknya algoritma ekripsi yang ada. Sehingga kita diharapkan dapat memahami algoritma dari setiap enkripsi, selain itu kalian juga akan mempelajari Poly-Alphabetic Cipher, Transposition Cipher, Substitution Cipher, dan Polygrammic Cipher.
Forensic Digital adalah cabang yang mempelajari bagaimana cara untuk mengumpulkan informasi dari sebuah data digital. Salah satu contoh sederhananya, bagaimana kita dapat mengambil informasi dari sebuah memory dump yang telah disediakan. Kadang dalam kategori Forensic terdapat beberapa soal yang sebenarnya merupakan kategori Steganografi. Hal ini dikarenakan Steganografi adalah ilmu untuk menyembunyikan informasi kedalam sebuah media. Selain itu terdapat juga beberapa kategori Networking seperti soal yang mengharuskan kita untuk mendapatkan informasi dari sebuah network packet yang nantinya kita analisis. File yang akan kita analisis dapat berupa file teks, gambar, bahkan audio. Untuk itu dalam kategori ini kita akan lebih bergantung dengan penggunaan tool yang telah tersedia. Dalam persoalan nyata, forensic digital bukanlah perkara mudah karena kita harus memperhatikan kaidah dalam memperlakukan alat bukti dari sebuah kejadian.
Kegiatan Forensic akan dilakukan setelah sebuah incident terjadi. Biasanya yang akan mengurus barang bukti pertama kali adalah bagian internal. Diharapkan ketika penanganan pertama tidak terjadi perusakan barang bukti.
Reverse Engineering atau rekayasa balik adalah proses untuk membongkar sebuah teknologi yang dalam hal ini biasanya berbentuk file executable. Mempelajari kategori ini membutuhkan waktu yang lebih lama, apalagi bagi mereka yang belum paham mengenai kode biner dan bahasa assembly. Bagi mereka yang menginginkan mempelajari kategori ini, saya sarankan untuk membuat dan mengcompile programnya sendiri lalu dapat melakukan decompile. Ini bertujuan agar kita lebih mengerti hasil decompile. Reverse engineering lebih mempelajari bagaimana sebuah mesin dapat mengerti atau mengartikan barisan code yang kita buat, sebenarnya ini telah kalian pelajari pada matakuliah organisasi komputer untuk mengingat konsep dasarnya kalian dapat meluangkan waktu untuk menyaksikan video berikut
Biasanya soal yang ada pada kategori ini akan meminta kita untuk memasukkan input yang diinginkan program, bisa berupa PIN ataupun strings. Terdapat beberapa tools yang dapat membantu kita dalam proses RE, seperti IDA Pro, Ghindra atau kalian dapat menggunakan gdb pada linux kalian.
Binary Exploitation adalah kategori yang mengharuskan peserta untuk melakukan exploit atau menjalankan fungsi yang seharusnya tidak dapat dijalankan dalam keadaan normal pada sebuah aplikasi atau file executable. Untuk menemukan celah tersebut kita sudah seharusnya mengetahui alur program dan fungsi-fungsi yang berjalan, dan ini dilakukan dengan reverse engineering. Sehingga dapat dikatakan bahwa binary exploitation atau dapat disebut binex adalah kelanjutan dari reverse engineering atau RE. Untuk memahami kategori ini, diharapkan kalian telah memahami dan dapat membaca bahasa C, karena sebagian besar soal pada kategori merupakan hasil compile dari C. Selain itu minimal kalian telah memahami konsep dasar C seperti, memory allocation, pointer, function pointer dan sebagainnya.
Biasanya dalam kategori ini kalian akan diperkenalkan dengan contoh soal buffer overflow. Ini merupakan contoh sederhana, dimana kalian dapat melakukan overwrite pada alamat memori sehingga memaksa program menjalankan fungsi yang seharusnya tidak dapat dijalankan.