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
- 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
- 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
- Sesuaikan Inputbox
- Batasi input hanya karakter yang valid seperti angka dan huruf
- Aktifkan Error Handling
- Menyembunyikan detail error dari output user
- Matikan Fitur Standar SQL
- Disable fitur seperti
Stored Procedures
dan Extensions
- 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