Сегодня расскажу вам про уязвимость контроля доступа.
❓Что это вообще такое?
Контроль доступа — это механизм, устанавливающий ограничения на то, кто или что имеет разрешение выполнять определённые действия или получать доступ к ресурсам. В контексте веб-приложений контроль доступа зависит от аутентификации и управления сеансами:
➖Authentication — подтверждает, что пользователь действительно тот, за кого себя выдаёт.
➖Session management — определяет, какие последующие HTTP-запросы относятся к текущему пользователю.
➖Access control — решает, разрешено ли пользователю выполнить определённое действие.
📖Уязвимость: Insecure Direct Object Reference (IDOR)
Одной из распространённых уязвимостей в этой категории является Insecure Direct Object Reference (IDOR). Она возникает, когда данные, передаваемые от клиента, напрямую используются для доступа к объектам на сервере — без достаточной проверки прав доступа.
✍️Пример
Представим, что сайт использует
URL-параметр для получения информации об учётной записи пользователя:
https://some-site.com/account?id=1337
Если сервер просто подставляет это значение и вытаскивает данные из базы без дополнительных проверок - можно изменить
id на чужой (id=1338, id=1 и т.д.) и получить доступ к информации других пользователей.✍️Изучить подробнее данные уязвимости можно в лабах ниже:
✏️Unprotected admin functionality
✏️Unprotected admin functionality with unpredictable URL
✏️User ID controlled by request parameter
✏️User ID controlled by request parameter with data leakage in redirect
✏️User ID controlled by request parameter with password disclosure
✏️User ID controlled by request parameter, with unpredictable user IDs
✏️User role can be modified in user profile
✏️User role controlled by request parameter
➥ ☕️ тг • 🤬чатик • ✍️посты
#web #writeup
