Прямая ссылка на объект может возникать, когда разработчик предоставляет ссылку на внутренний объект реализации, такой как файл, каталог или ключ базы данных, без какого-либо механизма проверки, который позволяет злоумышленникам манипулировать этими ссылками для доступа к неавторизованным данным.
Давайте разберемся с этими факторами с помощью простой диаграммы: агенты угроз, векторы атак, слабость в безопасности, техническое воздействие и влияние на бизнес.
пример
Приложение использует непроверенные данные в вызове SQL, который обращается к информации об учетной записи.
String sqlquery = "SELECT * FROM useraccounts WHERE account = ?"; PreparedStatement st = connection.prepareStatement(sqlquery, ??); st.setString( 1, request.getParameter("acct")); ResultSet results = st.executeQuery( );
Злоумышленник изменяет параметр запроса в своем браузере, указывая на Admin.
http://webapp.com/app/accountInfo?acct=admin
Руки вверх
Шаг 1 — Войдите в Webgoat и перейдите к разделу «Недостатки контроля доступа». Цель состоит в том, чтобы получить файл tomcat-users.xml, перейдя по пути, в котором он находится. Ниже приведен снимок сценария.
Шаг 2. Путь к файлу отображается в поле «текущий каталог» — C: \ Users \ имя пользователя $ \. Extract \ webapps \ WebGoat \ lesson_plans \ en, и мы также знаем, что файл tomcat-users.xml хранится в C: \ xampp \ tomcat \ conf
Шаг 3 — Нам нужно пройти весь путь из текущего каталога и перейти от C: \ Drive. Мы можем сделать то же самое, перехватывая трафик с помощью Burp Suite.
Шаг 4 — Если попытка успешна, отображается файл tomcat-users.xml с сообщением «Поздравляем. Вы успешно завершили этот урок».
Профилактические механизмы
Разработчики могут использовать следующие ресурсы / точки в качестве руководства, чтобы предотвратить небезопасную прямую ссылку на объект во время самой фазы разработки.
Разработчики должны использовать только одного пользователя или сеанс для косвенных ссылок на объекты.
Также рекомендуется проверять доступ перед использованием прямой ссылки на объект из ненадежного источника.