Hands-on: Eksploitasi SQL Injection pada Aplikasi Web

From OnnoWiki
Revision as of 19:52, 28 October 2024 by Onnowpurbo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

Menyiapkan DVWA di Kali Linux

  • Pastikan DVWA terinstall dan berjalan di Kali Linux:
  • Install dan jalankan Apache & MySQL:
sudo service apache2 start
sudo service mysql start
  • Download DVWA jika belum diinstal:
sudo git clone https://github.com/digininja/DVWA /var/www/html/dvwa
  • Atur permission dan konfigurasi:
sudo chown -R www-data:www-data /var/www/html/dvwa
sudo chmod -R 755 /var/www/html/dvwa
  • Ubah konfigurasi `config.inc.php`:
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:
$_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".

Mengaktifkan SQL Injection di DVWA

  • Setelah login, pastikan "Security Level" diset ke "Low" di menu "DVWA Security".
  • Akses halaman "SQL Injection" di sidebar.

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.

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:
SELECT * FROM users WHERE id = '1' OR '1'='1';
  • Query ini selalu benar dan mengembalikan semua data pengguna.

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:
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.

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.


Pranala Menarik