October 14, 2026
Reflected XSS di Aplikasi Pelaporan Kecamatan Pemerintah Kabupaten [REDACTED] via Parameter id
1. Ringkasan Eksekutif (Executive Summary / TL;DR)

By Mencari si dia
2 min read
1. Ringkasan Eksekutif (Executive Summary / TL;DR)
- Jenis Kerentanan: Reflected Cross-Site Scripting (XSS)
- Vektor: Parameter URL (
id) - Dampak: Eksekusi JavaScript sewenang-wenang di browser korban, pencurian cookie sesi, dan potensi session hijacking.
- Status: Unfixed (Dilaporkan, belum ada balasan, belum diperbaiki)
- Severity: Medium
2. Pendahuluan (Introduction)
Halo, saya Primandito Adi Setiya, seorang bug hunter. Pada 14 November 2025, saya sedang melakukan vulnerability testing pada portal layanan publik milik Pemerintah Kabupaten [REDACTED], khususnya pada aplikasi pelaporan kecamatan.
Saat menguji fitur laporan penduduk, saya menemukan sebuah celah Reflected Cross-Site Scripting (XSS) pada parameter id. Celah ini muncul karena input dari parameter URL tidak disanitasi dengan benar sebelum ditampilkan kembali ke dalam halaman HTML.
Artikel ini akan membahas bagaimana saya menemukannya, cara mereproduksinya, hingga dampak dari kerentanan ini.
3. Detail Kerentanan (Vulnerability Details)
Aplikasi menerima input dari parameter URL id dan memantulkannya (reflect) ke dalam respons halaman HTML tanpa melakukan output encoding atau sanitasi yang memadai.
Penyerang dapat menyisipkan payload HTML/JavaScript yang akan dieksekusi oleh browser korban. Dalam kasus ini, saya menggunakan teknik tag breaking ('">) untuk keluar dari konteks atribut HTML, kemudian menyuntikkan tag <img> dengan atribut onerror. Teknik .1|alert(...) digunakan untuk memicu eksekusi JavaScript dengan cara yang mungkin melewati filter sanitasi dasar.
4. Langkah Reproduksi (Steps to Reproduce / PoC)
Berikut adalah langkah-langkah untuk mereproduksi kerentanan ini:
Step 1: Identifikasi Target
Buka halaman detail laporan penduduk pada target:
https://redactedkab.go.id/index.php?page=detail-laporan-penduduk2
Step 2: Injeksi Payload
Sisipkan payload berikut ke dalam parameter id pada URL:
'"><img/src/onerror=.1|alert`XSS REFLECTED`>'"><img/src/onerror=.1|alert`XSS REFLECTED`>
Step 3: Eksekusi & Verifikasi
Setelah URL diakses, browser akan memproses payload tersebut. Muncul pop-up alert box yang menampilkan pesan (Bypass), membuktikan bahwa JavaScript berhasil dieksekusi.
Step 4: Status Perbaikan (Post-Fix) Hingga writeup ini dipublikasikan (14 Oktober 2026), pihak terkait belum memberikan respons dan kerentanan ini belum diperbaiki. Payload yang sama masih dapat tereksekusi.
5. Dampak (Impact)
Kerentanan XSS ini dapat dimanfaatkan penyerang untuk:
- Pencurian Cookie/Session: Mencuri cookie sesi pengguna yang sedang login, yang berujung pada Account Takeover (jika cookie tidak di-set
HttpOnly). - Phishing: Memanipulasi tampilan halaman untuk menipu pengguna agar memasukkan data sensitif.
- Defacement: Mengubah tampilan halaman web sementara.
- Redirect Berbahaya: Mengarahkan pengguna ke situs berbahaya yang dikendalikan penyerang.
6. Rekomendasi Perbaikan (Remediation)
Untuk mencegah kerentanan ini terulang, ada tiga langkah krusial yang harus dilakukan:
- Output Encoding: Selalu lakukan HTML entity encoding (mengubah karakter <, >, ", ', &) pada semua input yang akan ditampilkan kembali ke halaman HTML.
- Validasi Input: Batasi karakter yang diizinkan pada parameter URL dan tolak input yang mencurigakan.
- Content Security Policy (CSP): Terapkan CSP yang kuat untuk memitigasi dampak XSS jika terjadi.
7. Timeline (Kronologi)
- 14 November 2025: Menemukan kerentanan dan melakukan verifikasi PoC.
- 14 November 2025: Melaporkan kerentanan ke pihak terkait.
- [Hingga 14 Oktober 2026]: Tidak ada balasan atau konfirmasi dari pihak terkait.
- 14 Oktober 2026: Melakukan pengecekan ulang, kerentanan belum diperbaiki. Writeup dipublikasikan sebagai dokumentasi portofolio dan pengingat akan pentingnya responsible disclosure.
8. Penutup
Kerentanan ini menjadi pengingat bahwa sanitasi input pada parameter URL sangatlah krusial. Meskipun laporan ini tidak mendapatkan balasan dan belum diperbaiki, saya tetap mendokumentasikannya sebagai bagian dari portofolio dan bukti kontribusi saya dalam menjaga keamanan siber.
Saya berharap pihak terkait dapat segera menindaklanjuti laporan ini demi keamanan data dan pengguna. Bagi para bug hunter, tetap semangat dan jangan pernah berhenti belajar. Happy hunting!