July 12, 2026
Membongkar Celah Open Redirect pada Sistem SSO Pemerintah: Mengapa Validasi Parameter redirect_uri…
Writeup Bug Hunting
By Pian Firman Hidayat
3 min read
Sebagai seorang security researcher, salah satu kepuasan terbesar adalah ketika kita berhasil memetakan bagaimana sebuah fitur normal bisa dipaksa bekerja di luar fungsi semestinya. Beberapa waktu lalu, saat sedang menganalisis beberapa subdomain milik Pemerintah Provinsi Jabar, perhatian saya tertuju pada sebuah sistem Single Sign-On (SSO) berbasis OpenID Connect.
Di sana, saya menemukan celah klasik yang sering diremehkan, namun dampaknya bisa fatal jika jatuh ke tangan penyerang yang cerdik: Open Redirect (CWE-601).
Melalui tulisan ini, saya ingin membagikan kronologi bagaimana celah ini ditemukan, mengapa implementasi SSO sangat rawan terhadap bug ini, serta sebuah catatan mengenai pentingnya standardisasi apresiasi bagi komunitas independent researcher di Indonesia.
Kronologi Penemuan: Bermula dari Parameter yang Terlalu Ramah
Sistem SSO dirancang untuk mempermudah hidup pengguna: satu akun untuk semua aplikasi. Di balik layar, sistem ini mengandalkan parameter seperti redirect_uri untuk mengarahkan pengguna kembali ke aplikasi asal setelah mereka sukses login atau logout.
Saat melakukan analisis pada domain target, saya melihat struktur URL berikut pada proses autentikasinya:
https://sso.jabarprov.go.id/realms/ssojabar/protocol/openid-connect/auth?response_type=code&scope=email&client_id=portal&redirect_uri=https://smartjabar.jabarprov.go.id/auth
Secara default, sistem yang aman seharusnya hanya mengizinkan pengalihan ke domain yang berada dalam satu ekosistem (dalam hal ini *.jabarprov.go.id). Di sinilah rasa penasaran saya muncul: Bagaimana kalau kita ganti tujuannya?
Proof of Concept (PoC): Ketika Sistem Percaya Begitu Saja
Eksperimen saya mulai pada modul logout. Logikanya sederhana, setelah pengguna logout, mereka harus dikembalikan ke halaman utama atau halaman eksternal yang valid.
Saya mencoba mengubah nilai redirect_uri aslinya menjadi domain eksternal tiruan (evil.com):
https://sso.jabarprov.go.id/realms/ssojabar/protocol/openid-connect/logout?redirect_uri=https://evil.com
Hasilnya? Sistem langsung merespons dengan status HTTP 302 Found dan mengalihkan browser saya sepenuhnya ke halaman luar tanpa ada filter atau halaman peringatan sama sekali.
Aplikasi web tersebut menelan mentah-mentah input eksternal tanpa adanya validasi whitelisting.
Mengapa Celah Ini Berbahaya?
Banyak developer menganggap Open Redirect hanyalah celah dengan tingkat keparahan rendah. Namun, jika kita melihatnya dari kacamata Social Engineering, celah ini adalah senjata mematikan.
- Phishing Tingkat Tinggi: Korban akan melihat URL yang mereka klik diawali dengan domain resmi terpercaya (https://sso.jabarprov.go.id/...). Mereka tidak akan curiga. Begitu diklik, mereka otomatis terlempar ke situs phishing yang dibuat mirip persis dengan halaman login asli untuk mencuri kredensial.
- OAuth Token Hijacking: Jika celah ini dieksploitasi pada jalur /auth alih-alih /logout, penyerang yang lihai bisa saja memanipulasi redirect untuk mencuri auth_code atau access token pengguna, yang berujung pada pengambilalihan akun secara penuh.
Langkah Mitigasi: Mengunci Pintu yang Terbuka
Sebagai researcher, tugas kita bukan cuma merusak, tapi juga ikut memberikan solusi. Jika Anda mengelola sistem SSO (terutama yang menggunakan framework seperti Keycloak atau sejenisnya), berikut adalah beberapa benteng pertahanan yang wajib diterapkan:
- Strict Whitelisting: Jangan pernah mengizinkan pengalihan bersifat dinamis secara bebas. Daftarkan URL aplikasi klien secara spesifik (misal: hanya boleh ke https://smartjabar.jabarprov.go.id/auth). Tolak penggunaan wildcard seperti * jika tidak sangat terpaksa.
- Gunakan Relative Path: Jika pengalihan hanya terjadi di dalam domain yang sama, paksa sistem untuk hanya menerima relative path (contoh: /dashboard atau /home), bukan absolute URL yang mengandung https://.
- Implementasikan Interstitial Page: Jika sistem memang mengharuskan pengalihan ke luar ekosistem, buat halaman perantara. Beri tahu pengguna dengan jelas: Anda akan meninggalkan situs resmi. Apakah Anda yakin?
Sisi Lain Bug Hunting: Respons Cepat, Namun Standardisasi Apresiasi Perlu Ditingkatkan
Sebagai peneliti yang berniat baik, langkah pertama yang saya lakukan tentu saja melaporkan celah ini secara resmi dan bertanggung jawab melalui koordinasi Jabar CSIRT. Saya menyusun laporan yang rapi, lengkap dengan langkah-langkah reproduksi dan saran perbaikan. Secara teknis, penanganan dari tim terkait patut diapresiasi karena sangat responsif. Laporan direspons, celah langsung ditambal (patched) dengan cepat, dan saya diminta mengisi formulir pelaporan resmi sebagai bagian dari prosedur administrasi mereka, disertai ucapan terima kasih. Namun, jika melihat dari sudut pandang pengembangan ekosistem bug hunting lokal, ada satu hal yang dirasa masih perlu ditingkatkan, yaitu mengenai pemberian penghargaan non-finansial berupa Sertifikat Apresiasi (Letter of Appreciation). Bagi seorang independent researcher, sertifikat bukanlah sekadar kertas bonus, melainkan sebuah pengakuan resmi (proof of work) yang sangat berharga untuk membangun portofolio karier profesional. Jika kita melihat beberapa instansi daerah lain—seperti Pemerintah Provinsi DKI Jakarta, Bali, DIY Yogyakarta, hingga tingkat Pemerintah Daerah seperti Purwakarta—mereka telah memiliki standar operasional prosedur (SOP) yang matang dalam memberikan sertifikat resmi bagi para pelapor celah keamanan yang valid. Langkah pemberian sertifikat dari berbagai daerah tersebut terbukti sangat efektif untuk memotivasi para talenta IT lokal agar mau berkontribusi secara legal dan sukarela dalam mengamankan ruang digital negara. Ketika sebuah laporan yang valid dan telah di-patch selesai diproses, sangat ideal jika bentuk apresiasi formal ini juga distandardisasikan secara merata di setiap CSIRT instansi, termasuk di wilayah Jawa Barat.
Catatan Akhir dan Pelajaran bagi Kita Semua
Bagi rekan-rekan sesama researcher atau pemula yang sedang belajar, terlepas dari bagaimana dinamika sistem reward atau birokrasi apresiasi yang ada, hal terpenting adalah celah keamanan tersebut kini telah diperbaiki dan sistem menjadi lebih aman untuk publik. Jadikan setiap temuan dan proses pelaporan ini sebagai sarana belajar yang mandiri. Tulisan di Medium ini adalah bentuk dokumentasi riil bahwa keahlian menganalisis dan kemauan untuk berbagi solusi jauh lebih bernilai untuk membangun personal branding serta portofolio jangka panjang kita di dunia cyber security. Stay safe, teruslah meneliti, dan mari bersama-sama membangun ekosistem siber yang lebih baik!