July 25, 2026
Lab10: Stored XSS into anchor href attribute with double quotes HTML-encoded
Halo semuanya! Kali ini saya akan membagikan langkah-langkah penyelesaian lab Stored XSS dari PortSwigger Academy. Lab ini sangat menarik…
By Diva Rizky Alfitrah
2 min read
Halo semuanya! Kali ini saya akan membagikan langkah-langkah penyelesaian lab Stored XSS dari PortSwigger Academy. Lab ini sangat menarik karena kita akan mengeksploitasi kerentanan XSS yang tersimpan di dalam atribut href pada tag HTML anchor.
Deskripsi Lab
Lab ini berisi kerentanan Cross-Site Scripting (XSS) yang tersimpan dalam fungsi komentar. Tujuan kita adalah mengirimkan komentar yang akan memicu fungsi alert() ketika nama penulis komentar tersebut diklik oleh pengguna lain.
Langkah-langkah Penyelesaian
1. Identifikasi Titik Input (Reconnaissance)
- Pertama, buka salah satu postingan blog yang ada di lab.
- Gulir ke bawah hingga menemukan kolom komentar.
- Masukkan komentar dan pada kolom "Website", masukkan string alfanumerik acak (contoh:
testing123). - Gunakan Burp Suite untuk mencegat (intercept) permintaan (request) tersebut dan kirimkan ke Burp Repeater agar kita bisa melakukan pengujian berulang kali.
2. Analisis Refleksi Input
- Kirimkan komentar tersebut, lalu buka kembali halaman postingan blog di browser.
- Periksa kode sumber (Page Source) atau gunakan fitur Inspect Element pada nama penulis komentar yang baru saja dibuat.
- Perhatikan bahwa string acak (
testing123) yang Anda masukkan tadi tercermin di dalam atributhrefpada tag anchor (<a>), seperti contoh berikut. <a href="http://testing123">Nama Penulis</a>
3. Eksploitasi Menggunakan Payload JavaScript
- Karena input kita berada di dalam atribut
href, kita tidak perlu memutus tag HTML dengan tanda kutip. Kita bisa langsung menggunakan skema URL JavaScript. - Kembali ke Burp Repeater pada tab permintaan POST /post/comment.
- Cari parameter
websitedan ganti nilainya dengan payload berikut:javascript:alert(1) - Tekan tombol Send untuk mengirim komentar yang sudah dimodifikasi tersebut.
4. Verifikasi Hasil (Execution)
- Segarkan (refresh) halaman postingan blog tersebut di browser.
- Cari komentar yang baru saja kamu kirim.
- Klik pada nama penulis komentar.
- Jika berhasil, sebuah kotak peringatan (alert) akan muncul di browser Anda.
Kesimpulan
Kerentanan ini terjadi karena aplikasi tidak memvalidasi apakah input pada kolom "Website" merupakan URL yang valid (seperti http:// atau https://). Dengan menggunakan skema javascript:, kita dapat menyisipkan kode eksekusi langsung ke dalam atribut link.
⚠️ Peringatan Keamanan & Etika (Disclaimer)
Informasi yang dibagikan dalam tulisan ini dibuat semata-mata untuk tujuan edukasi dan pembelajaran di bidang keamanan siber (Cyber Security).
Gunakan dengan Bijak: Teknik yang dijelaskan di sini hanya boleh dipraktikkan pada platform belajar yang legal (seperti PortSwigger Academy) atau sistem milik pribadi yang telah diberikan izin untuk pengujian.
Aktivitas Ilegal: Melakukan pengujian atau peretasan terhadap sistem, jaringan, atau aplikasi milik pihak lain tanpa izin tertulis yang sah adalah tindakan ilegal dan dapat berakibat pada konsekuensi hukum yang serius.
Tanggung Jawab: Penulis tidak bertanggung jawab atas penyalahgunaan informasi dalam artikel ini yang mengakibatkan kerusakan, kerugian, atau masalah hukum bagi pihak mana pun.
Etika Peneliti: Jadilah Ethical Hacker yang membantu memperkuat keamanan digital, bukan merusaknya.⚠️ Peringatan Keamanan & Etika (Disclaimer)
Informasi yang dibagikan dalam tulisan ini dibuat semata-mata untuk tujuan edukasi dan pembelajaran di bidang keamanan siber (Cyber Security).
Gunakan dengan Bijak: Teknik yang dijelaskan di sini hanya boleh dipraktikkan pada platform belajar yang legal (seperti PortSwigger Academy) atau sistem milik pribadi yang telah diberikan izin untuk pengujian.
Aktivitas Ilegal: Melakukan pengujian atau peretasan terhadap sistem, jaringan, atau aplikasi milik pihak lain tanpa izin tertulis yang sah adalah tindakan ilegal dan dapat berakibat pada konsekuensi hukum yang serius.
Tanggung Jawab: Penulis tidak bertanggung jawab atas penyalahgunaan informasi dalam artikel ini yang mengakibatkan kerusakan, kerugian, atau masalah hukum bagi pihak mana pun.
Etika Peneliti: Jadilah Ethical Hacker yang membantu memperkuat keamanan digital, bukan merusaknya.