Definisi dan Mekanisme SSI Injection
Server Side Includes (SSI) adalah mekanisme yang memungkinkan pengembang menyisipkan konten dinamis ke dalam file HTML sebelum dikirim ke browser. Kerentanan SSI Injection terjadi ketika aplikasi web mengizinkan pengguna untuk menyuntikkan perintah SSI melalui input yang tidak divalidasi. Jika server dikonfigurasi untuk memproses perintah SSI, penyerang dapat mengeksekusi perintah sistem, membaca file sensitif, atau melakukan serangan Remote Code Execution (RCE).
Langkah Mitigasi Teknis
Mitigasi utama berfokus pada membatasi kemampuan server dalam mengeksekusi perintah berbahaya dan memastikan input pengguna tidak pernah diproses sebagai direktif SSI.
1. Menonaktifkan SSI pada Server
Jika fitur SSI tidak diperlukan, cara paling aman adalah menonaktifkannya sepenuhnya. Pada Apache, gunakan konfigurasi berikut dalam file .htaccess atau konfigurasi virtual host:
Options -Includes2. Validasi dan Sanitasi Input
Jika SSI harus digunakan, pastikan semua input pengguna yang akan ditampilkan di halaman web disanitasi. Gunakan fungsi escaping untuk karakter khusus yang digunakan dalam sintaks SSI seperti <!--#.
3. Konfigurasi Hak Akses
Jalankan proses web server dengan hak akses pengguna yang paling rendah (least privilege). Hal ini membatasi dampak jika terjadi eksploitasi, karena penyerang tidak akan memiliki akses ke file sistem yang krusial.
| Metode Mitigasi | Tingkat Efektivitas | Implementasi |
|---|---|---|
| Disable SSI | Sangat Tinggi | Konfigurasi Server (Options -Includes) |
| Input Sanitization | Tinggi | Filter karakter khusus (HTML Encoding) |
| Least Privilege | Sedang | Pengaturan User/Group OS |
| WAF Rules | Sedang | Filtering pola <!--# |
Pengecekan Keamanan
Untuk memastikan sistem Anda aman, lakukan pengujian dengan memasukkan payload standar pada kolom input yang dicurigai rentan:
<!--#exec cmd="ls"-->Jika server merespons dengan daftar file direktori, maka aplikasi Anda rentan terhadap SSI Injection. Segera terapkan langkah mitigasi di atas untuk menutup celah tersebut.
Tips Troubleshooting
- Periksa log server (
error_log) untuk melihat apakah ada upaya eksekusi perintah yang tidak sah. - Pastikan modul
mod_includepada Apache hanya aktif pada direktori yang benar-benar membutuhkan fitur tersebut. - Gunakan Web Application Firewall (WAF) untuk mendeteksi dan memblokir pola string yang menyerupai direktif SSI.