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`  

CREATE DATABASE demo_db; 


USE demo_db;

- Lalu untuk menambah kolom `id`, `username`, dan `password` atau dengan command berikut:

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.


- Lalu isi dengan skrip di bawah ini:

<!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. dan isinya sebagai berikut:

<?php
include "koneksi.php";
// 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();
?>

Komentar

Postingan populer dari blog ini

RANSOMWARE