BYPASS LOGIN DENGAN SQL INJECTION (DASAR KEAMANAN SIBER)

Tutorial: Cara Melakukan Bypass Login Menggunakan SQL Injection

Dasar Keamanan Siber

Dalam tutorial ini, saya akan membagikan langkah-langkah lengkap untuk mendemonstrasikan bypass login menggunakan SQL Injection. Ini bertujuan untuk edukasi, khususnya untuk memahami celah keamanan yang umum terjadi dalam aplikasi web.

⚠️ Peringatan

Tutorial ini hanya untuk tujuan pembelajaran. Jangan gunakan teknik ini untuk menyerang sistem yang bukan milik Anda. Etika dan legalitas adalah hal utama dalam keamanan siber.


Langkah 1: Persiapan Awal

1. Install Web Server Lokal

Kamu bisa menggunakan XAMPP atau Laragon untuk menjalankan web server dan database MySQL di komputer lokal.

2. Buat Database dan Tabel

Buka phpMyAdmin atau terminal MySQL, lalu jalankan perintah 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 2: Buat Formulir Login

Buat file bernama login.html dengan isi berikut:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <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>

Langkah 3: Buat Script PHP yang Rentan

Buat file login.php dengan isi berikut:

<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "demo_db"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Koneksi gagal: " . $conn->connect_error); } $user = $_POST['username']; $pass = $_POST['password']; $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(); ?>

Langkah 4: Lakukan Serangan Bypass Login

Buka login.html di browser, lalu masukkan:

  • Username: ' OR '1'='1

  • Password: ' OR '1'='1

Hasilnya: sistem akan menampilkan "Login berhasil!", padahal kredensial yang dimasukkan tidak benar.

Ini terjadi karena query SQL-nya menjadi:

SELECT * FROM users WHERE username='' OR '1'='1' AND password='' OR '1'='1'

Query ini selalu bernilai TRUE, sehingga login bisa dilakukan tanpa validasi yang sah.


Langkah 5: Tugas & Pencegahan

๐Ÿ” Cara Mencegah SQL Injection

Gunakan Prepared Statements di PHP agar input pengguna tidak langsung disisipkan ke query SQL.

Contoh aman:

$stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?"); $stmt->bind_param("ss", $user, $pass); $stmt->execute();
Save file tersebut lalu coba login dengan username dan password yang sama, dan hasilnya akan tertulis "Login gagal!"

๐Ÿงจ Dampak Serangan SQL Injection

  • Akses tidak sah ke akun pengguna

  • Kehilangan atau pencurian data sensitif

  • Potensi kerusakan total pada database

  • Penurunan kepercayaan pengguna


๐Ÿ“Œ Penutup

Serangan SQL Injection sangat berbahaya dan umum ditemukan pada aplikasi web yang tidak divalidasi dengan benar. Melalui demo ini, diharapkan kita bisa lebih memahami cara kerja dan cara mencegahnya.

Jika kamu merasa tutorial ini bermanfaat, silakan bagikan atau tulis komentar di bawah. Jangan lupa kerjakan tugas dan upload link blog ke e-learning!

TERIMAKASIH

Komentar

Postingan populer dari blog ini

TUTORIAL ERP ODOO (ENTERPRISE RESOURCE PLANNING)

LOCAL/REMOTE FILE INCLUSION (DASAR KEMANAN SIBER)

OSINT (DASAR KEAMANAN SIBER)