October 26, 2026
Dokumentasi Pengujian Cross-Site Scripting (XSS) Pada Sistem Informasi Akademik
Dokumentasi ini mencakup catatan teknis dari pengujian keamanan aplikasi web secara mandiri, analisis risiko, dan rekomendasi mitigasi.

By Arya Dwi Aji
3 min read
Pendahuluan
Aplikasi web telah menjadi bagian penting dari layanan digital, termasuk sistem informasi akademik dan Learning Management System (LMS). Namun, semakin kompleks suatu aplikasi, semakin besar juga kebutuhan untuk memastikan bahwa setiap input pengguna diproses secara aman. Salah satu kerentanan yang perlu diperhatikan adalah Cross-Site Scripting (XSS). Kerentanan ini dapat muncul ketika aplikasi memproses input yang tidak tepercaya, kemudian menempatkannya dalam konteks yang memungkinkan browser menafsirkan input tersebut sebagai kode JavaScript.
Artikel ini membahas temuan kerentanan yang saya susun berdasarkan pengujian mandiri terhadap aplikasi web. Tujuan artikel ini bukan sekadar menunjukkan keberadaan kerentanan, tetapi juga menjelaskan bagaimana temuan kerentanan dapat dianalisis secara sistematis dan dilaporkan secara bertanggung jawab.
Apa yang dimaksud XSS?
Cross-Site Scripting (XSS) merupakan kerentanan keamanan pada aplikasi web yang memungkinkan penyerang menyisipkan skrip berbahaya ke dalam halaman web yang kemudian dijalankan oleh browser pengguna. Kerentanan ini umumnya terjadi ketika aplikasi memproses dan menampilkan input yang tidak tepercaya tanpa melakukan validasi dan output encoding yang sesuai.
Mengapa kerentanan XSS dapat terjadi?
XSS sering terjadi ketika aplikasi web menerima input dari pengguna, kemudian menampilkannya kembali ke halaman tanpa menangani konten tersebut secara aman. Akibatnya, browser dapat menafsirkan input yang disisipkan sebagai kode aktif, bukan sekadar teks biasa.
Browser tidak secara otomatis mengetahui apakah suatu skrip berasal dari pengembang aplikasi atau dari input yang disisipkan penyerang. Browser memproses konten berdasarkan cara konten tersebut diinterpretasikan oleh HTML dan JavaScript. Jika input yang tidak tepercaya ditempatkan dalam konteks yang memungkinkan eksekusi skrip, maka kode tersebut berpotensi dijalankan dalam konteks origin aplikasi yang rentan.
XSS umumnya dibagi menjadi tiga kategori yaitu :
- Reflected XSS
Reflected XSS terjadi ketika input dari suatu permintaan, misalnya parameter URL , dimasukkan kembali ke dalam respons aplikasi tanpa penanganan yang aman. Apabila input tersebut ditempatkan dalam konteks yang memungkinkan browser mengeksekusinya sebagai skrip, kerentanan XSS dapat terjadi. Serangan ini biasanya melibatkan interaksi pengguna, seperti membuka tautan yang telah dimanipulasi.
2. Stored XSS
Stored XSS terjadi ketika konten berbahaya disimpan oleh aplikasi, misalnya dalam database, kemudian ditampilkan kepada pengguna lain tanpa pengamanan yang sesuai. Contohnya adalah aplikasi forum yang menyimpan komentar tidak aman dan mengeksekusi skrip ketika komentar tersebut dibuka oleh pengguna.
3. DOM-based XSS
DOM-based XSS terjadi ketika JavaScript pada sisi klien memproses sumber data yang tidak tepercaya dan memasukkannya ke dalam DOM melalui operasi yang tidak aman. Pada kasus ini, eksekusi dapat terjadi akibat pemrosesan JavaScript di browser, tanpa harus bergantung pada server yang mengembalikan payload sebagai bagian dari respons HTML.
Berikut merupakan pengujian kerentanan yang dilakukan secara mandiri pada sistem informasi akademik
Temuan Reflected XSS pada Aplikasi LMS
Kerentanan Cross-Site Scripting (XSS) Reflected pada subdomain Learning Management System (LMS) di alamat https://lms.dinxxx.ac.id. Kerentanan ini memungkinkan penyerang untuk menyisipkan dan mengeksekusi skrip berbahaya di sisi klien, yang berpotensi digunakan untuk mencuri informasi sensitif seperti session cookies, melakukan serangan phishing, atau mengubah tampilan konten halaman.
Lokasi : https://lms.dinxx.ac.id
Parameter rentan : redirect url
Payload yang diuji :
javascript:alert('XSS Test')
Temuan Reflected XSS pada Endpoint Aplikasi Web
Jenis Kerentanan: Reflected Cross-Site Scripting (XSS)
Payload yang Diuji:
Parameter Rentan: URL path pada endpoint /cpanelwebcall/ menerima dan mengeksekusi input tanpa dilakukan proses sanitasi atau filter yang memadai.
Bukti Temuan:
- laborxx.uxxx.ac.id
- icodaxx.uxxx.ac.id
Mitigasi Serangan XSS
- Validasi input
Tentukan format, panjang, tipe data, dan karakteristik input yang diperbolehkan. Untuk parameter URL, lakukan parsing dan validasi skema serta tujuan yang diizinkan.
- Gunakan API DOM yang aman
Hindari memasukkan string tidak tepercaya ke dalam API yang menafsirkan HTML. Jika hanya menampilkan teks, gunakan textContent daripada innerHTML.
- Implementasikan Content Security Policy
CSP membantu membatasi sumber skrip yang dapat dieksekusi dan dapat mengurangi dampak sejumlah kesalahan implementasi. Kebijakan sebaiknya dirancang secara bertahap, diuji, dan diperketat tanpa bergantung pada kebijakan yang terlalu permisif.
- Lakukan pengujian keamanan berkala
Pengujian perlu mencakup parameter query, URL path, form, integrasi autentikasi, serta komponen JavaScript yang memproses data dari sumber tidak tepercaya.
Setelah perbaikan diterapkan, lakukan pengujian ulang untuk memastikan bahwa kerentanan telah tertutup dan perubahan tidak menimbulkan masalah baru.