Backend API Jadi Korban Serangan, Data Kamu Bisa Dicuri dengan Mudah!

API yang tidak dilindungi dapat mengekspos nama, tempat, waktu pemesanan yang dilakukan menggunakan app.

Kerentanan kontrol akses di platform penjadwalan sumber terbuka Mudah! Janji temu memberi penyerang yang tidak diautentikasi akses mudah ke informasi pengenal pribadi (PII), seorang peneliti keamanan telah mengungkapkan.

Sekarang ditambal, kelemahan kritis (CVE-2022-0482) muncul dari kurangnya autentikasi di API backend yang digunakan untuk mengisi kalender pengguna.

Bug ini ditemukan oleh Francesco Carlucci, pendiri OpenCIRT, platform pemberitahuan kerentanan yang saat ini dalam mode beta.

Carlucci menemukan bahwa ajax_get_calendar_events( ) hanya melewati tiga parameter – startDate, endDate, dan csrfToken – dan upaya untuk menghapus semua cookie dari permintaannya menghasilkan 403 response.

Dia kemudian menemukan bahwa peretas jahat dapat mengambil token CSRF hanya dengan mengunjungi formulir pemesanan publik, sebelum menanyakan API yang tidak dilindungi dan mengunduh data yang berkaitan dengan janji temu.

Kerentanan rability, yang telah didokumentasikan Carlucci dalam penulisan teknis, memiliki skor CVSS 9.1.

Skenario serangan

Ada beberapa skenario serangan, kata Carlucci. “Pertama-tama, penyerang memiliki akses ke seluruh rangkaian informasi pribadi, yang disediakan oleh pengguna selama proses pemesanan,” katanya kepada The Daily Swig.

“Ini termasuk nomor telepon, alamat fisik, kota… semua informasi menarik yang dapat digunakan untuk pencurian identitas dan `serangan pemulihan kata sandi` di situs web lain.

“Lalu tentu saja, penyerang tahu siapa yang ditemui pengguna dan mengapa, dan ini bisa sangat pribadi berdasarkan tujuan pemesanan.”

He melanjutkan: “Terakhir namun tidak kalah pentingnya, respons HTTP menyertakan `referensi` (hash) pemesanan, yang dapat digunakan oleh penyerang untuk membatalkan pemesanan atas nama pengguna (pada titik akhir yang berbeda: index.php/appointments /indeks/{hash}). Penyerang dapat mengotomatiskan ini untuk mengulang pemesanan dan menghapus seluruh database pemesanan.”

Sistem manajemen janji temu didasarkan pada CodeIgniter, yang Carlucci mengatakan lebih berisiko daripada kerangka kerja PHP alternatif seperti Laravel karena pengembang harus membuat kode otentikasi mereka sendiri dan fitur dasar lainnya.

Carlucci mengatakan bahwa ada “beberapa ribu contoh yang masih belum ditambal di web”, dan meskipun belum ada bukti eksploitasi aktif , ini bisa berubah “dalam waktu dekat”.

Pembaruan dan deteksi bug

Carlucci mengirimkan laporan kerentanan ke platform hadiah bug open source Huntr and Easy! Pengembang utama janji temu Alex Tselegidis pada 30 Januari.

Tselegidis menambal masalah di Easy!Appointments 1.4.3, yang dirilis 8 Maret. Semua versi sebelumnya terpengaruh.

Tselegidis telah menyediakan utilit patch y yang mengotomatiskan proses pembaruan untuk pengguna yang tidak dapat memperbarui.

Pengembang, yang dipuji Carlucci sebagai “sangat responsif dan kooperatif”, juga “melakukan tinjauan keamanan penuh” yang membahas beberapa masalah keamanan kecil lainnya.

Carlucci, yang memperoleh hadiah hadiah bug “kecil” untuk penemuan tersebut, telah menerbitkan template Nuclei untuk membantu peneliti keamanan mendeteksi kerentanan, dan memperingatkan “beberapa LSM besar yang menggunakan perangkat lunak untuk memesan vaksin Covid-19”.

Referensi PortSwigger.com