Kerentanan dalam tantangan ini berkaitan dengan Insecure Direct Object References (IDOR), di mana pengguna dapat mengakses objek yang seharusnya tidak mereka miliki hanya dengan memanipulasi parameter di URL.
IDOR (Insecure Direct Object References) terjadi ketika aplikasi web mengandalkan parameter numerik atau pengenal langsung tanpa mekanisme validasi atau autentikasi tambahan. Jika tidak ada pengecekan hak akses, pengguna dapat dengan mudah menebak dan mengakses data yang tidak seharusnya.
Dalam kasus ini:
Server tidak membatasi akses berdasarkan `note_id`, sehingga pengguna dapat mencoba nilai yang lebih rendah atau lebih tinggi untuk menemukan entri yang tersembunyi.
Pada tantangan ini, diberikan kredensial login (seperti pada deskripsi) untuk mengakses sebuah website.
Setelah berhasil login, pengguna diarahkan ke halaman dengan URL `http://<ip>/note.php/note_id=1`
Mulai dari sini, saya terus menggantinya seperti pada gambar-gambar dibawah ini
Dengan mengganti parameter `note_id` menjadi angka 1 hingga 5, muncul sebuah hint yang berbunyi:
`Do note_ids start from 1? Maybe go lower;)`
Ketika `note_id` diubah menjadi `0`, ditemukan flag tantangan ini.
Ouput Pesan yang didekripsi:
THM{i_can_see_your_notes}
Tantangan ini menunjukkan pentingnya validasi dan pembatasan akses pada endpoint yang menangani data sensitif. Dengan memanfaatkan IDOR, penyerang dapat membaca atau memodifikasi data tanpa otorisasi yang benar. Ini adalah kelemahan umum dalam pengelolaan akses berbasis parameter.
Untuk mencegah kerentanan serupa, beberapa langkah mitigasi yang dapat diterapkan:
Validasi dan Otorisasi
Gunakan mekanisme autentikasi dan otorisasi berbasis sesi atau token untuk memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses data tertentu.
Pastikan bahwa setiap objek hanya dapat diakses oleh pemiliknya.
Implementasi Access Control Lists (ACLs)
Terapkan Access Control Lists (ACLs) untuk membatasi akses ke data berdasarkan hak akses pengguna.
Menghindari ID yang Dapat Ditebak
Gunakan pengenal unik berbasis UUID atau hash yang sulit ditebak alih-alih ID numerik yang bisa diubah dengan mudah.
Logging dan Monitoring
Pantau aktivitas pengguna untuk mendeteksi pola akses yang mencurigakan, seperti percobaan akses ke ID yang tidak valid atau di luar jangkauan.
Dengan menerapkan mitigasi ini, aplikasi dapat lebih terlindungi dari eksploitasi IDOR dan menjaga keamanan data penggunanya.