- Регистрация
- 13 Июн 2025
- Сообщения
- 26
- Реакции
- 1
- Баллы
- 3
Что такое IDOR?
IDOR (Insecure Direct Object Reference) — это уязвимость, возникающая, когда приложение предоставляет прямой доступ к объектам (файлам, записям БД) по их идентификаторам без проверки прав доступа.
Пример:
Если заменить
Как работает уязвимость?
1. Приложение использует предсказуемые идентификаторы (числа, имена файлов).
2. Нет проверки: "Имеет ли текущий пользователь право на доступ к этому объекту?"
3. Атакующий подменяет ID и получает несанкционированные данные.
Уязвимый код (Python/Flask):
Чем опасна IDOR?
• Кража персональных данных (профили, документы).
• Утечка коммерческой информации (счета, договоры).
• Массовый сбор данных через автоматизированные атаки.
Как обнаружить?
1. Ищите параметры типа:
?id=, ?user_id=, ?file=, ?invoice=, ?order=
2. Пробуйте изменить ID (на +1, случайное число, UUID).
3. Проверьте, доступны ли объекты без авторизации.
Примеры атак
• Подмена
• Доступ к файлам:
• Изменение данных через POST/PUT-запросы (если нет CSRF-токенов).
Методы защиты
• Проверка прав доступа для каждого объекта.
• Непредсказуемые идентификаторы (UUID, хеши).
• Использование косвенных ссылок (например,
Реальные примеры (CVE)
• CVE-2021-22986 — IDOR в Pulse Connect Secure (доступ к админ-панели).
• Уязвимость в Facebook (2013) — доступ к фото через подмену ID.
• Утечки в API банковских приложений (частые случаи).
Важно: Всегда тестируйте такие уязвимости только с разрешения владельца системы!
IDOR (Insecure Direct Object Reference) — это уязвимость, возникающая, когда приложение предоставляет прямой доступ к объектам (файлам, записям БД) по их идентификаторам без проверки прав доступа.
Пример:
Код:
https://example.com/profile?user_id=123
user_id=123
на user_id=124
, можно получить доступ к чужому профилю. Как работает уязвимость?
1. Приложение использует предсказуемые идентификаторы (числа, имена файлов).
2. Нет проверки: "Имеет ли текущий пользователь право на доступ к этому объекту?"
3. Атакующий подменяет ID и получает несанкционированные данные.
Уязвимый код (Python/Flask):
Код:
@app.route('/download')
def download_file():
file_id = request.args.get('file_id')
file = File.query.get(file_id) # Нет проверки прав!
return send_file(file.path)
Чем опасна IDOR?
• Кража персональных данных (профили, документы).
• Утечка коммерческой информации (счета, договоры).
• Массовый сбор данных через автоматизированные атаки.
Как обнаружить?
1. Ищите параметры типа:
?id=, ?user_id=, ?file=, ?invoice=, ?order=
2. Пробуйте изменить ID (на +1, случайное число, UUID).
3. Проверьте, доступны ли объекты без авторизации.
Примеры атак
• Подмена
?invoice_id=100
→ ?invoice_id=101
(чужие счета). • Доступ к файлам:
/download?file=passwords.txt
. • Изменение данных через POST/PUT-запросы (если нет CSRF-токенов).
Методы защиты
• Проверка прав доступа для каждого объекта.
• Непредсказуемые идентификаторы (UUID, хеши).
• Использование косвенных ссылок (например,
/me/profile
вместо /user?id=123
). Реальные примеры (CVE)
• CVE-2021-22986 — IDOR в Pulse Connect Secure (доступ к админ-панели).
• Уязвимость в Facebook (2013) — доступ к фото через подмену ID.
• Утечки в API банковских приложений (частые случаи).
Важно: Всегда тестируйте такие уязвимости только с разрешения владельца системы!