Demo Bypass Login dengan SQL Injection

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. Persiapan 

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

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Login Page</title>
  </head>
  <body>
    <h2>Login</h2>
    <form action="login.php" method="post">
      <label for="username">Username:</label>
      <input type="text" id="username" name="username" /><br /><br />
      <label for="password">Password:</label>
      <input type="password" id="password" name="password" /><br /><br />
      <input type="submit" value="Login" />
    </form>
  </body>
</html>

2. Buat Skrip Login yang Rentan 

Buat file `login.php` yang mengandung kerentanan SQL Injection.

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "demo_db";
// Membuat koneksi ke database
$conn = new mysqli($servername, $username, $password, $dbname);

// Mengecek koneksi
if ($conn->connect_error) {
    die("Koneksi gagal: " . $conn->connect_error);
   }
   // Mengambil input dari formulir
   $user = $_POST['username'];
   $pass = $_POST['password'];
   // Query yang rentan terhadap SQL Injection
   $sql = "SELECT * FROM users WHERE username='$user' AND password='$pass'";
   $result = $conn->query($sql);
   if ($result->num_rows > 0) {
    echo "Login berhasil!";
   } else {
    echo "Login gagal!";
   }
   $conn->close();
   ?>

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




Serangan SQL Injection adalah salah satu serangan yang paling umum dan berbahaya terhadap aplikasi web yang menggunakan database. Dampak dari serangan ini bisa sangat merusak dan meluas, tergantung pada cara serangan dilakukan dan kerentanan yang ada dalam sistem.

Dampak Utama dari Serangan SQL Injection:

  1. Akses ke Data Sensitif: Penyerang dapat menggunakan SQL Injection untuk mengakses data sensitif yang disimpan dalam database. Misalnya, informasi pribadi pengguna seperti nama, alamat email, nomor telepon, atau bahkan data keuangan atau kartu kredit.

  2. Manipulasi Data: Serangan ini juga dapat memungkinkan penyerang untuk mengubah atau menghapus data yang ada dalam database. Hal ini dapat menyebabkan kehilangan data penting atau penghancuran data yang signifikan.

  3. Eksekusi Kode Tambahan: Penyerang dapat menggunakan SQL Injection untuk menjalankan perintah SQL tambahan yang tidak diinginkan. Misalnya, mereka dapat menjalankan perintah untuk menghapus tabel, menambahkan akun pengguna dengan hak akses yang tidak sah, atau bahkan menjalankan perintah sistem yang berpotensi merusak.

  4. Pengintaian (Data Gathering): Serangan SQL Injection dapat digunakan untuk melakukan pengintaian terhadap struktur database dan aplikasi, seperti mengidentifikasi tabel, kolom, dan struktur data lainnya. Informasi ini dapat digunakan untuk merencanakan serangan lebih lanjut atau untuk keuntungan kompetitif.

  5. Eksploitasi Kelemahan Aplikasi: Penyerang dapat memanfaatkan kerentanan SQL Injection untuk mengeksploitasi aplikasi secara lebih luas. Ini dapat termasuk serangan berantai di mana serangan SQL Injection digunakan untuk memperoleh akses lebih lanjut ke server atau aplikasi lain di dalam jaringan.

  6. Kehilangan Kepercayaan Pengguna: Salah satu dampak yang sering diabaikan dari serangan SQL Injection adalah kerugian kepercayaan dari pengguna akhir. Jika data pribadi mereka terbuka atau disalahgunakan, ini dapat merusak reputasi organisasi dan mengakibatkan hilangnya kepercayaan pelanggan.

Contoh Dampak Nyata

  • 2017 Equifax Data Breach: Serangan SQL Injection yang berhasil memanfaatkan kerentanan pada aplikasi web Equifax mengakibatkan hilangnya data pribadi lebih dari 145 juta orang, termasuk nama, alamat, dan nomor Social Security.

  • Sony Pictures Entertainment Hack (2014): Serangan yang melibatkan SQL Injection terhadap Sony Pictures mengakibatkan pencurian besar-besaran data perusahaan, termasuk email karyawan, informasi finansial, dan rilis film yang belum dirilis.




Komentar

Postingan populer dari blog ini

Getting Started with NumPy

DICTIONARIES & FRECUENCY TABLES

membuat Script variabel dan operator