Dasar-Dasar SQL Injection

Jul 14, 2024

Dasar-Dasar SQL Injection

Pendahuluan

  • Assalamualaikum warahmatullah wabarakatuh
  • Selamat datang di channel Bintang Dilangit
  • Bahasan kali ini: SQL Injection
  • Fokus: Dasar-dasar SQL Injection dengan sedikit praktik
  • Menggunakan DVWA (Damn Vulnerable Web Application) untuk simulasi karena praktik di website asli ilegal

Persiapan

  1. Setup DVWA
    • Buka browser favorit (contoh: Chrome)
    • Masuk ke DVWA di localhost
    • Start services (untuk Linux: sudo service mysql start, sudo service apache2 start)
    • Login DVWA dengan username: admin dan password: password
  2. Security Level Setting
    • Set security level ke Low untuk latihan dasar
    • Simpan setting

Teknik SQL Injection

  • Login Bypass Test
    • Coba input user ID dengan angka (contoh: 1)
    • Jika error saat memasukkan karakter spesial ('), berarti aplikasi rentan terhadap SQL injection
  • Praktik SQL Injection
    • Menyalahgunakan input yang tidak difilter untuk mengeksploitasi basis data

Deskripsi SQL Injection

  • Teknik yang memanfaatkan celah keamanan di SQL
  • Input dari user tidak difilter dengan benar
  • Masih menjadi favorit hacker untuk serangan website

Contoh Teknik Dasar

  • Input: ' OR '1'='1 (mengabaikan autentikasi)
  • Tujuan: bypass autentikasi, mencuri informasi, memodifikasi atau menghapus data
  • Contoh query: SELECT * FROM tabel WHERE id='1' OR '1'='1'

Cara Mencegah SQL Injection

  1. Sesuaikan Inputbox
    • Batasi input hanya karakter yang valid seperti angka dan huruf
  2. Aktifkan Error Handling
    • Menyembunyikan detail error dari output user
  3. Matikan Fitur Standar SQL
    • Disable fitur seperti Stored Procedures dan Extensions
  4. Setting Privilege
    • Berikan batasan akses sesuai role user

Analisis Keamanan {

  • Cek versi database: SELECT VERSION()
  • Cek user database: SELECT USER()
  • Cek nama database: SELECT DATABASE()
  • Cek tabel: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='nama_database'

Praktik Lanjut - Information Gathering

  • Cek tabel di database: SELECT * FROM information_schema.tables
  • Query untuk menggabungkan hasil (Union): UNION SELECT ...
  • Contoh: SELECT ... UNION SELECT user()

Pentingnya Information Gathering

  • Langkah awal sebelum eksekusi serangan
  • Proses ini membantu memahami struktur database target

Resources untuk Belajar SQL Injection

  • Internet resources: SQL Injection cheatsheet
  • Tools dan tutorial: DVWA, pentest metodologi

Penutup

  • Pentingnya keamanan web dalam pengembangan web/app
  • SQL injection masih menjadi isu krusial di keamanan web
  • Praktik di environment legal seperti DVWA

Wassalamualaikum warrahmatullahi wabarakatuh