Небезопасные прямые ссылки на объекты (IDOR)

Что такое IDOR?

IDOR (небезопасные прямые ссылки на объекты) — это тип уязвимости контроля доступа, который возникает, когда приложение напрямую использует введенные пользователем данные для доступа к объектам. Термин IDOR получил популярность благодаря появлению в OWASP Top Ten 2007 года. Однако это лишь один из множества примеров ошибок реализации контроля доступа, которые могут привести к его обходу. Уязвимости IDOR чаще всего связаны с горизонтальной эскалацией привилегий, но могут возникать и в контексте вертикальной эскалации привилегий.

Примеры IDOR

Существует множество примеров уязвимостей контроля доступа, когда контролируемые пользователем значения параметров напрямую используются для доступа к ресурсам или функциям.

Уязвимость IDOR с прямой ссылкой на объекты базы данных

Рассмотрим веб-сайт, который использует следующий URL для доступа к странице аккаунта клиента, извлекая информацию из базы данных:

https://insecure-website.com/customer_account?customer_number=132355

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

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

Уязвимость IDOR с прямой ссылкой на статические файлы

Уязвимости IDOR часто возникают, когда чувствительные ресурсы расположены в статических файлах на файловой системе сервера. Например, веб-сайт может сохранять транскрипты сообщений чата на диск с инкрементируемыми именами файлов и позволять пользователям получать их по URL вида:

https://insecure-website.com/static/12144.txt

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

Last updated