Apa Itu Bug Bounty?

Bug bounty adalah program di mana perusahaan atau organisasi memberikan hadiah (biasanya uang) kepada para peretas etis atau peneliti keamanan yang berhasil menemukan dan melaporkan celah keamanan dalam sistem mereka. Tujuannya? Mencegah celah tersebut dieksploitasi oleh pihak jahat sebelum diperbaiki.

Program ini ibarat "undangan resmi" untuk meretas — tapi dengan aturan main yang jelas, ruang lingkup yang ditentukan, dan imbalan yang menggiurkan. Platform global seperti HackerOne, Bugcrowd, dan Intigriti menjadi tempat berkumpulnya para pemburu bug, sementara di Indonesia sendiri, sudah mulai banyak perusahaan teknologi yang membuka program bug bounty mereka.


Mindset Seorang Pemburu Bug

Sebelum membahas teknis, ada pola pikir yang harus kamu tanamkan:

  • Pikir seperti developer, serang seperti hacker. Untuk menemukan celah, kamu harus mengerti bagaimana aplikasi dibangun.
  • Jangan terpaku pada daftar periksa. Daftar periksa itu panduan, tapi temuan terbaik datang dari eksplorasi kreatif di luar kebiasaan.
  • Baca aturan main dengan saksama. Melanggar batas yang ditentukan bisa berakibat fatal, mulai dari dilarang hingga masalah hukum.
  • Dokumentasi yang baik itu kunci. Bug yang tidak bisa direproduksi dengan jelas akan langsung ditolak.

Langkah Awal Berburu Bug

Berikut adalah alur kerja (workflow) yang bisa kamu ikuti sebagai pemula:

1. Pengintaian (Reconnaissance) — Kenali Targetmu

Fase ini adalah fondasi. Semakin banyak informasi yang kamu kumpulkan tentang target, semakin besar peluangmu menemukan celah yang tersembunyi.

Kumpulkan Subdomain

Banyak perusahaan memiliki subdomain lama yang terlupakan. Subdomain ini sering kali tidak terurus dan bisa menjadi pintu masuk yang mudah.

  • Gunakan alat seperti Subfinder atau Amass untuk mengumpulkan subdomain secara pasif.
  • Lakukan bruteforce untuk menemukan subdomain yang tidak tercantum di publik.
  • Setelah terkumpul, periksa subdomain mana yang masih aktif dan memiliki server web yang berjalan.

Analisis File JavaScript

File JavaScript (.js) sering menjadi sumber informasi berharga. Di dalamnya, terkadang tersembunyi endpoint API, kunci rahasia (API key), atau logika bisnis yang bisa dieksploitasi.

  • Kumpulkan semua URL file JS dari target.
  • Grep atau gunakan alat khusus untuk mencari kata kunci seperti api, token, secret, atau internal.

Temukan Parameter Tersembunyi

Parameter dalam URL (yang ditandai dengan tanda tanya ?) adalah titik masuk utama untuk berbagai serangan seperti XSS atau SQL Injection. Terkadang, ada parameter yang tidak terdokumentasi dan justru lebih rentan.

  • Gunakan alat seperti Arjun atau ParamSpider untuk menemukan parameter tersembunyi.
  • Manfaatkan arsip web (Wayback Machine) untuk melihat parameter apa yang pernah digunakan di masa lalu.

2. Perburuan Kerentanan

Setelah memiliki daftar target potensial (URL, parameter), saatnya mencari celah.

XSS (Cross-Site Scripting)

XSS adalah salah satu celah paling umum. Intinya, attacker bisa menyisipkan skrip jahat ke halaman web yang dilihat pengguna lain. Namun, ingat, tidak semua XSS dihargai sama. XSS yang bisa mencuri cookie atau mengambil alih akun (account takeover) memiliki nilai lebih tinggi.

  • Lakukan uji coba manual dengan payload dasar seperti di setiap parameter.
  • Gunakan Dalfox, pemindai XSS otomatis yang cukup handal, untuk mempercepat proses.
  • Pelajari teknik bypass filter, seperti menggunakan encoding atau memanfaatkan event handler HTML.

IDOR (Insecure Direct Object Reference)

IDOR adalah favorit banyak pemburu karena dampaknya besar dan sering muncul. Celah ini terjadi ketika aplikasi menampilkan atau memanipulasi data berdasarkan input dari pengguna (misalnya ID) tanpa memeriksa otorisasi.

Contoh: Saat mengakses /api/user/12345, coba ubah angka 12345 menjadi 12346. Jika kamu bisa melihat data pengguna lain, berarti kamu menemukan IDOR.

  • Coba berbagai variasi ID, seperti angka berurutan, UUID, nilai negatif, atau format array.
  • Buat dua akun untuk menguji apakah kamu bisa mengakses data akun satu dari akun lainnya.

SQL Injection (SQLi)

Ini adalah celah klasik di mana attacker bisa menyisipkan perintah SQL ke dalam input untuk memanipulasi database.

  • Uji parameter dengan karakter seperti tanda petik (') untuk melihat apakah aplikasi menghasilkan error database.
  • Gunakan sqlmap untuk otomatisasi, tapi pahami juga cara manualnya.
  • Coba payload time-based blind seperti ' AND SLEEP(5)-- untuk mendeteksi celah tanpa melihat output langsung.

SSRF (Server-Side Request Forgery)

SSRF memungkinkan attacker memaksa server untuk membuat permintaan (request) ke alamat internal yang seharusnya tidak bisa diakses dari luar. Ini bisa berakibat fatal, seperti mengakses metadata cloud (AWS, GCP) atau server internal.

  • Cari fitur yang memungkinkan server mengambil data dari URL yang kita berikan (misal: fitur fetch thumbnail dari link).
  • Ganti URL tersebut dengan alamat lokal seperti http://127.0.0.1 atau http://169.254.169.254 (metadata AWS).
  • Pelajari teknik bypass seperti menggunakan notasi desimal atau oktal untuk alamat IP.

3. Eksplorasi Celah Logika Bisnis

Ini adalah level di mana kreativitasmu diuji. Celah logika tidak bisa dideteksi oleh pemindai otomatis. Kamu harus memahami bagaimana aplikasi seharusnya bekerja untuk menemukan kelemahan dalam alurnya.

Contoh Celah Logika:

  • Manipulasi Harga: Mengubah nilai harga produk menjadi nol atau negatif saat checkout.
  • Penyalahgunaan Kupon: Menggunakan kupon yang sudah kedaluwarsa atau menggunakannya berkali-kali.
  • Kondisi Balap (Race Condition): Mengirim banyak permintaan secara bersamaan untuk memanfaatkan celah sementara di server, misalnya untuk mendapatkan kupon berkali-kali.
  • Melewati Alur: Langsung mengakses halaman "sukses checkout" tanpa melalui proses pembayaran.

Perangkat Wajib Pemburu Bug

Ini adalah beberapa alat yang akan sering kamu gunakan:

Untuk Pengintaian (Recon)

  • Subfinder: Mengumpulkan subdomain.
  • Amass: Pengumpulan subdomain yang lebih dalam.
  • httpx: Memeriksa subdomain mana yang hidup.
  • Katana / gospider: Menjelajah (crawling) situs untuk menemukan semua URL.
  • Gau / waybackurls: Mengambil URL dari arsip internet.

Untuk Pemindaian dan Eksploitasi

  • Nuclei: Pemindai kerentanan berbasis template yang sangat cepat.
  • Dalfox: Pemindai XSS yang fokus dan cepat.
  • sqlmap: Alat otomatis untuk SQL Injection.
  • ffuf: Alat fuzzing serbaguna untuk menemukan direktori, file, atau parameter.

Untuk Memanipulasi Permintaan (Request)

  • Burp Suite: Toolkit utama seorang web security tester. Wajib hukumnya untuk dipelajari.
  • Interactsh / Collaborator: Untuk menangkap interaksi out-of-band (misalnya saat menguji SSRF atau Blind XSS).

Seni Menulis Laporan Bug yang Baik

Menemukan bug saja tidak cukup. Laporan yang buruk bisa membuat temuan validmu ditolak atau dihargai rendah. Laporan yang baik harus jelas, ringkas, dan mudah direproduksi.

Struktur Laporan yang Ideal:

  • Ringkasan (Summary): Jelaskan bug dalam 1-2 kalimat.
  • Tingkat Keparahan (Severity): Perkiraan dampak (Critical, High, Medium, Low).
  • Lokasi (Endpoint): URL dan parameter yang rentan.
  • Langkah Reproduksi (Steps to Reproduce): Panduan langkah demi langkah yang detail, dari awal hingga bug muncul. Sertakan permintaan dan respons HTTP jika perlu.
  • Bukti Konsep (Proof of Concept): Tangkapan layar atau video singkat yang memperlihatkan bug.
  • Dampak (Impact): Jelaskan apa yang bisa dilakukan penyerang dengan memanfaatkan bug ini.
  • Rekomendasi Perbaikan (Remediation): Saran singkat tentang cara memperbaikinya.

Pesan dari Pengalaman

  1. Fokus pada satu target. Pelajari satu aplikasi dengan sangat dalam lebih baik daripada berganti-ganti setiap hari.
  2. Kejar fitur baru. Fitur yang baru dirilis adalah ladang potensi bug karena kodenya masih segar dan pengujian mungkin belum sempurna.
  3. Belajar dari laporan orang lain. Baca publikasi laporan di HackerOne (Hacktivity) atau blog keamanan. Seringkali, teknik yang sama bisa diterapkan di target lain.
  4. Jangan lupakan aplikasi seluler. Banyak pemburu fokus ke web, sehingga API yang digunakan oleh aplikasi seluler sering kali kurang teruji.
  5. Konsistensi adalah kunci. Akan ada masa di mana kamu tidak menemukan apa pun. Teruslah belajar, teruslah mencoba.

Kesimpulan

Bug bounty lebih dari sekadar mencari uang. Ini adalah ajang asah kemampuan, ajang kreativitas, dan kontribusi nyata dalam menciptakan ruang digital yang lebih aman. Setiap temuan yang kamu laporkan membantu melindungi jutaan pengguna dari ancaman nyata.

Bagi yang baru memulai, jangan takut dengan penolakan. Setiap laporan yang ditolak adalah pelajaran berharga. Mulailah dari platform publik, pelajari dari komunitas, dan teruslah mengasah intuisi keamananmu.

Selamat berburu, dan semoga laporanmu selalu valid! 🛡️