CODEBOOK
Website Platform Belajar Dan Edukasi
By Shadownex 2025-2026
← Kembali ke Katalog Lab
Cross-Site ScriptingUNSOLVEDReward: +100 XP

Lab 2: Stored XSS into HTML context with session cookie exfiltration

Aplikasi Blog "TechTalk Forum" menyimpan komentar pengguna langsung ke database dan menampilkannya kembali tanpa proses HTML Escaping.

TARGET OBJECTIVE & BRIEFING

Objective:

Kirimkan komentar yang mengandung payload JavaScript Stored XSS untuk mencuri Cookie Session Admin saat admin meninjau postingan tersebut.

Forum TechTalk mengizinkan pengguna menulis komentar pada artikel blog. Namun, renderer halaman web mengeksekusi markup HTML mentah dari komentar pengguna tanpa melakukan penapisan (Sanitization) atau escaping. Administrator sistem rajin meninjau setiap komentar baru yang masuk menggunakan simulasi headless bot.

PENTESTING METHODOLOGY
1. Masuk ke halaman artikel blog target.
2. Masukkan payload tag skrip seperti `<script>alert(document.cookie)</script>` atau tag gambar `<img src=x onerror=alert(1) />` ke dalam kolom komentar.
3. Kirim komentar dan tunggu simulasi Bot Administrator membaca postingan tersebut.
4. Ketika Bot Admin membaca komentar, skrip JavaScript Anda akan dieksekusi di browser admin dan mengeksfiltrasi Session Cookie berisi Flag.
CODE SECURITY INSPECTION

XSS terjadi saat browser mengeksekusi skrip asing dalam konteks autentikasi korban. CodeBook menangkalnya dengan React Auto-Escaping, DOMPurify, dan flag HttpOnly pada Session Cookie.

VULNERABLE CODE

// KODE RENTAN (Direct innerHTML Render)
function CommentItem({ text }) {
  // DANGEROUS: Menampilkan raw HTML tanpa Sanitasi!
  return <div dangerouslySetInnerHTML={{ __html: text }} />;
}

SECURE CODEBOOK IMPLEMENTATION

// KODE AMAN CODEBOOK STANDARD (Auto-Escaped JSX & HttpOnly Cookie)
function CommentItem({ text }) {
  // SAFE 1: JSX meng-escape tag HTML secara otomatis menjadi teks biasa
  // SAFE 2: Session Cookie diset HttpOnly sehingga JS tidak bisa membaca cookie
  return <div>{text}</div>;
}