01 KONTEKS
Garuda CBT adalah platform sekolah nyata yang dipakai aktif — pelaksanaan ujian, rapor, data siswa — didistribusikan sebagai PHP open-source di atas CodeIgniter 3, dipasang dan dijalankan sendiri oleh sekolah. Kombinasi itu (data sensitif, deployment luas, framework lama) persis profil yang layak diaudit sebelum aktor jahat melakukannya lebih dulu. Pertanyaannya sederhana: apa yang sebenarnya dibutuhkan penyerang untuk menguasai data ujian sebuah sekolah? Jawabannya: tanpa kredensial, satu request HTTP, dan — pada kasus terburuk — cukup repositori publiknya saja.
02 METODE
Source yang didistribusikan di-obfuscate dengan payload hex-escape, jadi langkah pertama adalah men-decode-nya kembali menjadi PHP yang terbaca. Dari situ audit berjalan sebagai loop:
- Decode source hasil distribusi menjadi PHP yang terbaca.
- Identifikasi sink berbahaya — penulisan file, konkatenasi query mentah, pemanggilan yang mengarah ke eksekusi.
- Lacak input pengguna sampai ke setiap sink.
- Urutkan mana yang benar-benar berbahaya.
- Verifikasi setiap kandidat secara dinamis pada instance yang dibangun sendiri.
- Pastikan dengan general log database — kebenaran absolut atas apa yang tereksekusi.
Bench uji: server built-in PHP 8.3.28, MariaDB 11.8.8, skema lengkap 74 tabel, akun uji buatan sendiri, ENVIRONMENT dibiarkan pada default rilisannya. Setiap klaim diuji sebagai request curl biasa ke instance lokal. Pembersihan paling akhir — webshell dihapus, tabel uji di-drop.
| Verifikasi | Temuan |
|---|---|
| Terverifikasi dinamis pada instance lokal | 8 |
| Review statis kode saja | 1 |
| Total | 9 |
