Portal Edukasi: Bug, Vulnerability, dan Exploit

Informasi lengkap, aman, dan fokus pada mitigasi — untuk developer, admin, dan peneliti keamanan.

Pelajari Tipe Cara Mencegah

Overview

Istilah singkat:

Penting — Semua contoh pada situs ini bersifat edukatif. Saya tidak menyediakan payload berbahaya atau langkah eksploitasi yang bisa disalahgunakan.

Tipe Vulnerability & Penjelasan

1. Injection (SQL, LDAP, Command)

Terjadi saat input pengguna dimasukkan langsung ke perintah/kueri tanpa sanitasi.

2. Broken Authentication

Kelemahan pada manajemen sesi, password, token yang memungkinkan akses tidak sah.

3. Cross-Site Scripting (XSS)

Script berbahaya disisipkan ke halaman web dan dijalankan pada browser pengguna.

4. Insecure File Upload

Upload berkas tanpa validasi dapat mengakibatkan eksekusi kode, overwriting, dsb.

Contoh Aman (Bug & Cara Memperbaiki)

Contoh A — PHP: input user ditampilkan tanpa escape (XSS risk)
<?php
// VULNERABLE (jangan pakai di produksi)
// echo "Halo, " . $_GET['name'];

// SAFE
$name = isset($_GET['name']) ? $_GET['name'] : 'Tamu';
echo 'Halo, ' . htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
?>
Contoh B — Database: gunakan prepared statement daripada konkatenasi
// VULNERABLE (tidak aman)
// $sql = "SELECT * FROM users WHERE email='" . $_POST['email'] . "' AND pass='" . $_POST['pass'] . "'";

// SAFE (mysqli prepared statement)
$stmt = $conn->prepare('SELECT id, password_hash FROM users WHERE email = ?');
$stmt->bind_param('s', $_POST['email']);
$stmt->execute();
$res = $stmt->get_result();
// lalu gunakan password_verify untuk cek password
Contoh C — File upload: validasi & nama aman
// SAFE upload (PHP): cek size, ekstensi, MIME, gunakan nama acak
$ext = strtolower(pathinfo($origName, PATHINFO_EXTENSION));
$allowed = ['jpg','png','pdf'];
if (!in_array($ext, $allowed)) die('Tipe tidak diizinkan');
$newName = bin2hex(random_bytes(16)) . '.' . $ext;
move_uploaded_file($tmp, __DIR__.'/uploads/'.$newName);

Semua contoh di atas focus pada how to fix — bukan cara mengeksploitasi.

CVE, Patch, & Responsible Disclosure

CVE (Common Vulnerabilities and Exposures) adalah sistem penomoran untuk vulnerability yang diketahui. Jika menemukan vulnerability, praktik aman adalah:

  1. Catat detail tanpa melakukan tindakan merusak.
  2. Periksa kebijakan vendor tentang responsible disclosure.
  3. Laporkan ke vendor / CERT / platform bug bounty sesuai prosedur.
  4. Jika vendor tidak responsif, laporkan ke organisasi koordinasi seperti CERT nasional (ikuti pedoman hukum setempat).

Jangan mengekspos publik detail yang mempermudah serangan sebelum patch tersedia.

Deteksi & Tools (untuk pengetesan aman)

Tools populer untuk deteksi & pengetesan (gunakan hanya di lingkungan yang Anda miliki atau dengan izin eksplisit):

Contoh tools (hanya sebut): Semgrep, Bandit (Python), OWASP ZAP, Burp Suite (professional), Trivy, Dependabot.

Pencegahan & Best Practices

Resources & Pembelajaran Lanjutan

(Untuk tautan resmi, kunjungi website organisasi terkait — materi di atas bersifat rujukan umum.)

Hubungi / Laporkan Temuan

Jika kamu seorang peneliti keamanan dan ingin melaporkan temuan, contoh template singkat untuk laporan aman (tanpa PoC eksploit):

Judul: Deskripsi singkat vulnerability
Dampak: Apa yang bisa terjadi (mis. kebocoran data)
Langkah reproduksi (ringkas, tanpa payload yang memudahkan eksploitas): environment, endpoint, parameter
Tanggal ditemukan: YYYY-MM-DD
Kontak peneliti: Kushendar2025@gmail.com/PGP

Selalu sertakan niat baik dan permintaan tindak lanjut; hindari publikasi lengkap sebelum patch tersedia.