CROSS SITE REQUEST FORGERY (DASAR KEAMANAN SIBER)

 

๐Ÿ’ป Tutorial Praktikum: Memahami dan Mencegah CSRF (Cross-Site Request Forgery)


๐Ÿ” Apa itu CSRF?

CSRF (Cross-Site Request Forgery) adalah jenis serangan keamanan di mana penyerang memanfaatkan kredensial pengguna yang sedang login untuk melakukan aksi tanpa sepengetahuan korban di situs yang sah. Misalnya, tanpa sadar korban bisa saja mentransfer uang, mengganti password, atau menghapus akun hanya karena mengklik tautan tertentu.


⚙️ Mekanisme Serangan CSRF

  1. Penyerang membuat URL/formulir berbahaya

  2. Korban ditipu untuk mengklik link atau membuka halaman

  3. Permintaan dikirim dengan kredensial korban (cookie/session)

  4. Server memproses permintaan seolah-olah dari pengguna asli


๐Ÿ“š Studi Kasus: Transfer Uang

Ilustrasi Serangan:

  • Pak Budi login ke situs perbankan.

  • Ia menerima email berisi link:

    http://bank.com/transfer?amount=1000&to=attacker_account
  • Saat diklik, uang otomatis ditransfer tanpa izin Pak Budi.


๐Ÿงช Demo Praktikum CSRF Menggunakan XAMPP

1️⃣ Buat Folder di XAMPP

Buat C:\xampp\htdocs\crsf lalu buka folder melalui Visual Studio Code:

2️⃣ Buat Formulir Transfer (index.html)

<!DOCTYPE html> <html> <body> <h2>Transfer Uang</h2> <form action="transfer.php" method="POST"> <label for="amount">Jumlah:</label><br> <input type="text" id="amount" name="amount"><br> <label for="to">Kepada:</label><br> <input type="text" id="to" name="to"><br><br> <input type="submit" value="Transfer"> </form> </body> </html>

3️⃣ Buat Script Transfer (transfer.php)

<?php session_start(); // Proses transfer (tanpa perlindungan CSRF) $amount = $_POST['amount']; $to = $_POST['to']; echo "Transferred $amount to $to"; ?>

4️⃣ Buat Simulasi Serangan (csrf_attack.html)

<!DOCTYPE html> <html> <body> <h2>CSRF Attack</h2> <form action="http://localhost:8080/csrf/transfer.php" method="POST"> <input type="hidden" name="amount" value="1000"> <input type="hidden" name="to" value="attacker_account"> <input type="submit" value="Submit"> </form> </body> </html>

๐Ÿงจ Cara Menjalankan Serangan

  1. Jalankan XAMPP (Apache harus aktif).

  2. Akses form transfer:
    http://localhost/csrf/index.html

  3. Isi formulir untuk cek apakah berfungsi.

  4. Akses file serangan:
    http://localhost/csrf/csrf_attack.html

  5. Klik "Submit", lihat hasilnya.


๐Ÿ›ก️ Cara Mencegah Serangan CSRF

Tambahkan token CSRF sebagai verifikasi. Berikut perbaikan pada transfer.php dan index.html.

✅ Update index.html menjadi index.php

Tambahkan token di formulir:

<?php session_start(); // Generate CSRF token if (empty($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } $token = $_SESSION['csrf_token']; ?> <!DOCTYPE html> <html> <head> <title>Form Transfer Aman</title> </head> <body> <h2>Transfer Uang (Dengan Proteksi CSRF)</h2> <form action="transfer.php" method="POST"> <input type="hidden" name="csrf_token" value="<?php echo $token; ?>"> <label for="amount">Jumlah:</label><br> <input type="text" id="amount" name="amount"><br> <label for="to">Kepada:</label><br> <input type="text" id="to" name="to"><br><br> <input type="submit" value="Transfer"> </form> </body> </html>

✅ Update transfer.php

Verifikasi token sebelum memproses transfer:

<?php session_start(); if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) { die("CSRF token tidak valid."); } // Lanjut proses jika token valid $amount = $_POST['amount']; $to = $_POST['to']; echo "Transferred $amount to $to"; ?>

Hasil :


Saat kmu menekan "Submit" pada http://localhost:8080/csrf/csrf_attack.html outputnya akan menjadi seperti itu.

⚠️ Dampak Serangan CSRF

  • Transaksi keuangan ilegal

  • Perubahan data pribadi

  • Penghapusan akun

  • Akses tidak sah ke fitur penting

  • Kerugian reputasi bagi perusahaan/situs


✅ Kesimpulan

CSRF adalah serangan yang sangat berbahaya jika situs tidak memiliki perlindungan token. Dengan menambahkan token unik pada setiap formulir, kita dapat mencegah manipulasi data oleh pihak ketiga.

TERIMAKASIH

Komentar

Postingan populer dari blog ini

TUTORIAL ERP ODOO (ENTERPRISE RESOURCE PLANNING)

LOCAL/REMOTE FILE INCLUSION (DASAR KEMANAN SIBER)

OSINT (DASAR KEAMANAN SIBER)