Bypass Login dengan SQL Injection

 Demo Bypass Login dengan SQL Injection

SQL Injection adalah teknik yang digunakan oleh penyerang untuk mengeksploitasi kerentanan dalam aplikasi yang menggunakan database. Ini dilakukan dengan memasukkan (injeksi) pernyataan SQL berbahaya ke dalam input yang biasanya diharapkan sebagai data dari pengguna. Teknik ini dapat digunakan untuk mengakses data yang tidak sah, termasuk melewati mekanisme login.

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




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.


Tampilan login :

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!" meskipun tidak memasukkan kredensial yang valid. 
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`.
 



Tugas 

• Buat script tambahan agar serangan SQL Injection pada kasus diatas tidak dapat di jalankan.

Menghindari serangan SQL menggunakan prepared statements. 
Berikut adalah versi yang sudah diperbaiki dari skrip PHP menggunakan prepared statements:


Dalam skrip yang telah diperbaiki di atas, "prepare" dan "bind_param" digunakan untuk menyiapkan dan mengikat parameter input pengguna ke pernyataan SQL. Ini memastikan bahwa input pengguna tidak dapat mengubah struktur SQL, sehingga mencegah serangan SQL Injection. 


Serangan SQL Injection adalah metode berbahaya yang digunakan oleh penyerang untuk mengeksploitasi kerentanan dalam aplikasi yang menggunakan database.

Dampak dari serangan SQL Injection dapat sangat merugikan, meliputi:

  • Pencurian Data: Penyerang dapat mengakses dan mencuri data sensitif seperti informasi pribadi pengguna, nomor kartu kredit, kata sandi, dan data bisnis penting yang tersimpan dalam database.
  • Perubahan atau Penghapusan Data: Data dalam database dapat dimodifikasi atau dihapus oleh penyerang, menyebabkan kerugian besar seperti hilangnya data penting dan kerusakan reputasi bisnis.
  • Kontrol Administratif: Penyerang bisa mendapatkan akses administratif ke sistem database, memungkinkan mereka untuk mengubah hak akses pengguna lain, membuat akun baru dengan hak administratif, atau melakukan tindakan berbahaya lainnya.
  • Penyusupan Sistem: Penyerang dapat menggunakan SQL Injection untuk mengeksekusi perintah sistem di server database, yang bisa mengarah pada kontrol penuh atas server dan memungkinkan penyusupan lebih lanjut ke dalam jaringan internal.
  • Penyebaran Malware: Kode berbahaya atau malware bisa disisipkan ke dalam database atau halaman web yang dihasilkan oleh aplikasi, yang kemudian dapat menyebar ke pengguna lain yang mengakses aplikasi tersebut.
  • Denial of Service (DoS): Penyerang dapat membuat query yang membebani sistem, menyebabkan crash atau kinerja yang sangat lambat, sehingga mengakibatkan penolakan layanan bagi pengguna sah.
  • Kerusakan Reputasi: Insiden keamanan seperti SQL Injection dapat merusak reputasi perusahaan, mengurangi kepercayaan pelanggan, dan mengakibatkan hilangnya bisnis.
  • Tuntutan Hukum dan Denda: Kebocoran data dan pelanggaran keamanan dapat mengakibatkan tuntutan hukum dari pelanggan dan denda dari regulator, terutama jika data pribadi atau informasi keuangan terlibat.
  • Kerugian Finansial: Biaya untuk memperbaiki kerusakan, seperti memperbaiki sistem, memulihkan data, dan mengelola dampak pada reputasi, bisa sangat tinggi.






Komentar