A1 : 2021 - Broken Access Control

Situs web memiliki halaman yang dilindungi dari pengunjung biasa. Misalnya, hanya pengguna admin situs yang dapat mengakses halaman untuk mengelola pengguna lain. Jika pengunjung situs web dapat mengakses halaman yang dilindungi yang tidak boleh mereka lihat, maka kontrol aksesnya rusak.

Pengunjung biasa yang dapat mengakses halaman yang dilindungi dapat menyebabkan hal berikut:
. Dapat melihat informasi sensitif dari pengguna lain
. Mengakses fungsi yang tidak sah

Sederhananya, kontrol akses yang rusak memungkinkan penyerang melewati otorisasi , sehingga mereka dapat melihat data sensitif atau melakukan tugas yang tidak seharusnya mereka lakukan.

Misalnya, kerentanan ditemukan pada tahun 2019 , di mana penyerang dapat memperoleh satu frame dari video Youtube yang ditandai sebagai pribadi. Peneliti yang menemukan kerentanan tersebut menunjukkan bahwa ia dapat meminta beberapa frame dan merekonstruksi video tersebut. Karena ekspektasi dari pengguna saat menandai video sebagai pribadi adalah tidak ada yang dapat mengaksesnya, hal ini memang diterima sebagai kerentanan kontrol akses yang rusak.

Insecure Direct Object Reference

IDOR atau Insecure Direct Object Reference mengacu pada kerentanan kontrol akses yang memungkinkan Anda mengakses sumber daya yang biasanya tidak dapat Anda lihat. Hal ini terjadi saat programmer mengekspos Direct Object Reference, yang merupakan pengenal yang merujuk ke objek tertentu di dalam server. Yang dimaksud dengan objek adalah berkas, pengguna, rekening bank di aplikasi perbankan, atau apa pun.

Misalnya, katakanlah kita sedang masuk ke rekening bank, dan setelah mengautentikasi diri dengan benar, kita akan diarahkan ke URL seperti ini https://bank.thm/account?id=111111. Di halaman tersebut, kita dapat melihat semua detail bank penting, dan pengguna akan melakukan apa pun yang perlu mereka lakukan dan melanjutkan prosesnya, dengan berpikir tidak ada yang salah.

Namun, ada masalah yang berpotensi besar di sini, siapa pun mungkin dapat mengubah parameter id ke hal lain seperti 222222, dan jika situs tersebut dikonfigurasikan secara tidak benar, maka ia akan memiliki akses ke informasi bank milik orang lain.

Aplikasi memaparkan referensi objek langsung melalui id parameter di URL, yang menunjuk ke akun tertentu. Karena aplikasi tidak memeriksa apakah pengguna yang masuk memiliki akun yang dirujuk, penyerang dapat memperoleh informasi sensitif dari pengguna lain karena kerentanan IDOR. Perhatikan bahwa referensi objek langsung bukanlah masalahnya, tetapi aplikasi tidak memvalidasi apakah pengguna yang masuk seharusnya memiliki akses ke akun yang diminta.

Contoh
-https://[IP]/private/config.yaml
-https://[IP]/api/v1/users/all
-https://[IP]/uploads/private/
-https://[IP]/admin/panel.php
-https://[IP]/data/user_roles.csv
-https://[IP]//.env
-https://[IP]/account?id=111111 ke https://[IP]/account?id=2222

tags