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.
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.
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>;
}