Bug Bounty, Bug Hunting, Insecure Direct Object Reference (IDOR), Уязвимости

#26 Bug Bounty v.2 — Уязвимость Insecure Direct Object Reference (IDOR)

Здравствуйте, дорогие друзья.

Insecure Direct Object Reference (IDOR) — это уязвимость, которая возникает, когда пользователь может просматривать несанкционированные данные. Проблема заключается в том, что разработчику не удалось реализовать надлежащий контроль доступа при обращении к ресурсам, чтобы пользователи могли получать доступ к данным других пользователей.

IDOR

IDOR — одна из моих любимых уязвимостей для поиска, поскольку ее легко найти и она может оказать значительное влияние в зависимости от контекста.

В подавляющем большинстве случаев вы можете обнаружить эту уязвимость, выполнив поиск по запросу который содержит ваш идентификатор пользователя, логин, адрес электронной почты или какой-либо другой идентификатор, привязанный к вашему пользователю. Некоторые приложения будут использовать этот идентификатор для предоставления вам контента на основе предоставленного идентификатора. При обычных обстоятельствах вы бы указали только свой идентификатор пользователя, чтобы разработчики могли забыть включить проверку подлинности при получении этих данных. В этом случае злоумышленники могут предоставить идентификатор другого пользователя для получения принадлежащих им данных. Это может быть что угодно, например, адрес доставки пользователя, номер кредитной карты, адрес электронной почты или что угодно еще. Вы можете не только получать информацию, но и иногда использовать IDOR для отправки команд пользователю. Например, добавление учетной записи администратора, изменение электронной почты пользователя или удаление набора разрешений.

idor

Как вы можете видеть выше, есть два запроса. В одном будет указан адрес электронной почты пользователя, а в другом будет получен адрес электронной почты пользователя. Серверное приложение использует значение “userId”, указанное пользователем при выполнении этих действий, без какой-либо другой проверки. Таким образом, как злоумышленник, мы могли бы легко изменить и получить доступ к электронной почте любого пользователя в приложении. Иногда это так же просто, как изменить свой идентификатор пользователя на другого пользователя, но что, если вы не можете легко угадать идентификатор пользователя, как показано в ответе ниже:

id idor in burp suite

Глядя на идентификатор пользователя “8f14e45fceea167a5a36dedd4bea2543”, вы можете подумать, что это случайный идентификатор, который невозможно угадать, но, возможно, это не так. Обычной практикой является хэширование идентификаторов пользователей перед сохранением их в базе данных, так что, возможно, именно это и происходит здесь.

hash password cracker

Как вы можете видеть выше, это MD5-хэш числа 7. Если злоумышленник получит MD5 хэш числа “11”, он сможет создать идентификатор пользователя для этого пользователя.

 MD5 хэш числа “11”

Теперь, когда мы сгенерировали хэш MD5 для целого числа 11, мы можем использовать его для извлечения информации из учетной записи пользователя этого человека.

извлечения информации из учетной записи пользователя этого человека

Поскольку идентификатор пользователя можно угадать и он увеличивается на единицу для каждого пользователя, эта атака также может быть спланирована таким образом, чтобы использовать каждого пользователя в приложении.

Резюме

IDOR — это злоупотребление функциональностью приложения для получения несанкционированной информации. Это может быть так же просто, как сменить идентификатор пользователя на чей-то другой, хотя, возможно, вам придется придумать способ сгенерировать идентификатор другого пользователя, если его нелегко угадать. После использования, эта уязвимость может быть использована для получения конфиденциальной информации других пользователей или выдачи команд от имени других пользователей.

Вывод

Научиться самостоятельно использовать распространенные уязвимости веб-приложений — обязательная задача для любого специалиста по безопасности. Как охотник, вы должны обращать пристальное внимание на ошибки, которые чаще всего обнаруживают другие охотники. XSS чрезвычайно популярен и прост в использовании, поэтому, если вы новичок в этой области, я бы начал с этого, это самая оплачиваемая ошибка в мире.

Вам также необходимо знать другие основные уязвимости, такие как sql-инъекция и IDOR, поскольку они также часто встречаются в веб-приложениях и часто приводят к обнаружению серьезных уязвимостей. Существует множество других уязвимостей OWASP, которые вы захотите изучить, чтобы добавить их в свой арсенал методов. Чем больше уязвимостей вы знаете, как использовать, тем больше у вас шансов найти их, и по мере прочтения книги вы будете узнавать все больше. При этом, даже если вы знаете только несколько основных веб — уязвимостей, вы все равно можете добиться невероятного успеха.

На этом все. Всем хорошего дня!

Цикл статей по Bug Bounty.