November 2, 2026
PortSwigger | Cross-Site Scripting Lab
Stored XSS into HTML context with nothing encoded
By Ahmad Solehudin
1 min read
Deskripsi:
Lab ini menunjukkan kerentanan Cross-Site Scripting (XSS) pada sebuah website melalui fitur komentar. Ketika menyisipkan kode java script di kolom komentar, sistem menampilkan inputnya sebagai HTML aktif tanpa encoding yang sesuai sehingga browser menginterpretasikannya sebagai kode java script. Salah satu penyebabnya adalah tidak adanya output encoding yang sesuai dengan penggunaan data. Tujuan dari lab ini adalah mengidentifikasi dan mengeksploitasi kerentanan Stored Cross-Site Scripting (XSS) pada fitur komentar blog dengan menyisipkan java script melalui fungsi alert.
Langkah-Langkah:
Pertama: Akses Lab dan pilih salah satu postingan pada blog dan klik view post.
Kedua: Masukkan kode java script di kolom komentar, kemudian isi kolong nama, email, dan situs web lalu kirim.
Ketiga: Setelah post komen lihat hasilnya, jika berhasil maka status lab tersebut jadi solved.
Berdasarkan kerentanan pada lab Cross-Site Scripting ini, tingkat kerenannya adalah 4.3 (Medium). Ini dilakukan di website pada lab PortSwigger dengan Low Attack Complexity, kemudia tidak diharuskan ada privillage required, dibutuhkan User Interaction karena ini dilakukan melalui kolom komentar dan userpun harus membuka halaman komentar yang memicu payload, serangan juga hanya terjadi pada komponen yang mengalami kerentanan sehingga tidak menimbulkan kebocoran kerahasiaan data, perubahan juga terjadi secara terbatas dan tidak mengganggu availability sistem. Cara penanggulangannya adalah:
- Gunakan output encoding agar browser tidak dapat mengeksekusi input sebagai HTML atau Java Script.
- Gunakan metode output yang aman seperti jenis dan jumlah karakter
- Sanitization atau proses pembersihan dan pembatasan konten yang berpotensi bahaya.
- Content Security Policy (CSP) untuk mekanisme keamanan browser untuk membatasi sumber konten yang dimuat dan dijalankan oleh website