Hands-on: Eksploitasi SQL Injection pada Aplikasi Web
SQL Injection adalah teknik serangan yang mengeksploitasi kerentanan aplikasi web untuk memasukkan perintah SQL berbahaya ke dalam query database. DVWA (Damn Vulnerable Web Application) adalah platform pembelajaran yang dirancang untuk mensimulasikan serangan, seperti SQL Injection, pada lingkungan aman.
Langkah-langkah Praktis di KALI Linux 2024.3
- 1. **Menyiapkan DVWA di Kali Linux**
Pastikan DVWA terinstall dan berjalan di Kali Linux: - Install dan jalankan Apache & MySQL: ```bash sudo service apache2 start sudo service mysql start ``` - Download DVWA jika belum diinstal: ```bash sudo git clone https://github.com/digininja/DVWA /var/www/html/dvwa ``` - Atur permission dan konfigurasi: ```bash sudo chown -R www-data:www-data /var/www/html/dvwa sudo chmod -R 755 /var/www/html/dvwa ``` - Ubah konfigurasi `config.inc.php`: ```bash cd /var/www/html/dvwa/config/ sudo cp config.inc.php.dist config.inc.php sudo nano config.inc.php ``` Sesuaikan database user dan password: ```php $_DVWA[ 'db_user' ] = 'root'; $_DVWA[ 'db_password' ] = 'password'; # Sesuaikan dengan password MySQL Anda ``` - Buka browser dan akses DVWA: `http://localhost/dvwa` - Login menggunakan default credential (`admin/password`), lalu setup database di halaman "DVWA Setup".
- 2. **Mengaktifkan SQL Injection di DVWA**
- Setelah login, pastikan "Security Level" diset ke "Low" di menu "DVWA Security". - Akses halaman "SQL Injection" di sidebar.
- 3. **Eksploitasi SQL Injection (Basic Example)**
- Pada halaman login atau input pengguna yang rentan SQL Injection, masukkan input yang berpotensi untuk mengganggu query SQL. - Misal, pada form yang meminta ID user, coba masukkan: ``` 1' OR '1'='1 ``` Ini adalah serangan SQL Injection sederhana yang bekerja dengan menambahkan pernyataan `OR` yang selalu benar (`'1'='1'`), yang memaksa aplikasi untuk mengembalikan semua record dari database.
- 4. **Analisis Response dan Identifikasi Kerentanan**
- Jika aplikasi mengembalikan semua data pengguna atau melewati autentikasi tanpa validasi, maka aplikasi tersebut rentan terhadap SQL Injection. - Dengan menggunakan payload seperti `1' OR '1'='1 -- `, Anda bisa memanipulasi perintah SQL yang dieksekusi oleh aplikasi. Contoh query di backend mungkin terlihat seperti ini: ```sql SELECT * FROM users WHERE id = '1' OR '1'='1'; ``` Query ini selalu benar dan mengembalikan semua data pengguna.
- 5. **Eksploitasi Lebih Lanjut**
- Setelah mengetahui aplikasi rentan, Anda dapat menggunakan tools otomatisasi seperti **sqlmap** untuk eksploitasi lebih lanjut. - Jalankan **sqlmap** untuk mendeteksi dan memanipulasi SQL Injection: ```bash sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=<session_id>" --dbs ``` - Dengan menggunakan **sqlmap**, Anda bisa mendapatkan informasi lebih dalam, seperti nama database, tabel, dan data sensitif.
- 6. **Mitigasi SQL Injection**
- Gunakan **Prepared Statements** dan **Parameterized Queries**. - Implementasi validasi input dan sanitasi data. - Batasi hak akses database pada level aplikasi.
- Contoh Penerapan SQL Injection dengan Burp Suite
Untuk eksplorasi lebih lanjut, Anda dapat menggunakan Burp Suite untuk intercept dan memodifikasi request SQL Injection secara manual. Ini berguna untuk mengidentifikasi vektor serangan yang lebih kompleks di aplikasi web.
Dengan kombinasi KALI Linux 2024.3, DVWA, dan tools seperti sqlmap dan Burp Suite, mahasiswa akan belajar memahami SQL Injection secara mendalam serta langkah-langkah mitigasi yang diperlukan untuk melindungi aplikasi web dari serangan ini.