В этой небольшой статье приведу пример эксплуатации уязвимости IDOR в Web API.
Еще по теме: IDOR уязвимость на практике
Пример эксплуатации уязвимости IDOR в Web API
Примером эксплуатации уязвимости IDOR в веб-API может быть следующий код:
1 2 3 4 5 6 7 8 9 |
python @app.route('/users/', methods=['GET']) def get_user(user_id): user = User.query.get(user_id) if user is None: abort(404) if user.id != current_user.id: abort(403) return jsonify(user.to_dict()) |
В этом коде приложение использует параметр user_id для доступа к объектам напрямую. Если пользователь, запрашивающий информацию о пользователе, не имеет прав доступа к этому пользователю, приложение должно вернуть ошибку 403.
Статья в образовательных целях для обучения этичных хакеров. Баг Баунти — это программа, которую владелец сайта (web-приложения) проводит для привлечения сторонних специалистов к поиску уязвимостей. При участии в программе Bug Bounty нужно действовать этично и придерживаться установленных правил.
Однако, если злоумышленник изменит параметр user_id на идентификатор пользователя, к которому у него нет доступа, приложение вернет информацию о запрошенном пользователе без проверки прав доступа.
1 2 3 4 5 6 7 |
python @app.route('/users/', methods=['GET']) def get_user(user_id): user = User.query.get(user_id) if user is None: abort(404) return jsonify(user.to_dict()) |
В этом измененном коде приложение больше не проверяет права доступа пользователя, запрашивающего информацию о пользователе. Это позволяет злоумышленнику получить доступ к информации о любом пользователе, изменяя параметр user_id.
Защита от атаки IDOR в API
Для предотвращения эксплуатации уязвимости IDOR в Web API рекомендуется:
- Использовать механизмы контроля доступа, которые не используют пользовательский ввод для доступа к защищенным ресурсам напрямую.
- Проводить регулярные аудиты безопасности, чтобы обнаружить и исправить возможные уязвимости в контроле доступа.
- Обучать разработчиков и пользователей, как распознавать и предотвращать уязвимости IDOR.
Эти меры помогут защитить Web API от эксплуатации уязвимости IDOR и предотвратить несанкционированный доступ к защищенным ресурсам.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Автоматизация атак в Burp Suite
- Обзор лучших сканеров уязвимостей
- Взлом веб-приложения с помощью брута Burp Suite