Сравнение двух карт сайта в Burp Suite

Beginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы научитесь использовать одну из мощных функций Burp Suite: "Сравнение карт сайтов" (Compare site maps). Эта функция имеет решающее значение для тестирования безопасности веб-приложений, особенно для выявления уязвимостей авторизации. Сравнивая структуру и содержимое сайта, доступные пользователям с разными уровнями привилегий, вы можете быстро обнаружить конечные точки (endpoints) или данные, которые неправильно раскрыты.

Вы выполните следующие действия:

  1. Запустите простое локальное веб-приложение с двумя ролями пользователей: обычным пользователем и администратором.
  2. Используйте встроенный браузер Burp Suite для исследования приложения в качестве пользователя с низкими привилегиями.
  3. Инициируйте процесс сравнения карт сайтов, сохранив представление пользователя с низкими привилегиями как первую карту.
  4. Войдите в систему как пользователь с высокими привилегиями и снова исследуйте приложение, чтобы заполнить карту сайта новыми административными функциями.
  5. Завершите сравнение и проанализируйте результаты, чтобы выявить контент и конечные точки, доступные только администратору.

Обзор приложения как пользователь с низкими привилегиями

На этом этапе вы запустите Burp Suite, настроите его браузер и просмотрите целевое приложение как обычный пользователь с низкими привилегиями. Это заполнит карту сайтов Burp всеми конечными точками (endpoints) и ресурсами, доступными этому пользователю.

Сначала откройте Burp Suite. Вы можете найти его в меню приложений, обычно в разделе Applications -> Other -> Burp Suite Community Edition. Когда появится запрос, выберите временный проект и нажмите Next, затем Start Burp.

После запуска Burp Suite вам необходимо использовать его встроенный браузер, чтобы убедиться, что весь трафик корректно проксируется.

  1. Перейдите на вкладку Proxy, затем на подвкладку Intercept.
  2. Нажмите кнопку Open Browser. Откроется новое окно браузера Chromium.

Теперь используйте этот браузер для взаимодействия с веб-приложением.

  1. В адресной строке нового браузера перейдите по адресу http://127.0.0.1:5000.
  2. Вы увидите страницу входа. Введите user в качестве имени пользователя и password в качестве пароля.
  3. Нажмите кнопку Login.
  4. Вы будете перенаправлены на панель управления пользователя. Перейдите по ссылкам, если они есть, но для этого простого приложения достаточно просто просмотреть панель управления.

Теперь вернитесь в главное окно Burp Suite и перейдите на вкладку Target -> Site map. Вы увидите, как структура приложения отображается на основе вашего просмотра.

В Target > Site map выберите хост и "Compare site maps"

На этом шаге вы инициируете процесс сравнения карт сайтов. Вы уже заполнили карту сайтов с точки зрения пользователя с низкими привилегиями. Теперь вы укажете Burp Suite, что хотите использовать эту текущую карту как первую точку сравнения.

  1. В окне Burp Suite убедитесь, что вы находитесь на вкладке Target -> Site map.
  2. В левой панели вы увидите древовидное представление посещенных вами сайтов. Найдите и выберите хост нашего приложения, которым является http://127.0.0.1:5000.
  3. Щелкните правой кнопкой мыши по хосту http://127.0.0.1:5000. Откроется контекстное меню с множеством опций.
  4. В контекстном меню перейдите к Engagement tools, а затем нажмите Compare site maps.

Это действие откроет мастер "Compare site maps", который проведет вас через настройку сравнения.

(Описание изображения: Скриншот, показывающий контекстное меню при щелчке правой кнопкой мыши в карте сайтов Burp Suite, с курсором, выделяющим опцию 'Compare site maps' в разделе 'Engagement tools'.)

В мастере выберите "Use current site map" для Map 1

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

Мастер "Compare site maps" теперь открыт. Он состоит из двух основных разделов: один для "Site map 1" и один для "Site map 2". Вы настроите первую карту сейчас, а вторую — позже.

  1. В области конфигурации "Site map 1" вы увидите несколько опций для загрузки карты.
  2. Выберите радиокнопку с надписью Use current site map. Это укажет Burp взять снимок карты сайта в ее текущем состоянии (отражающий сессию пользователя с низкими привилегиями) и использовать его в качестве базового для сравнения.
  3. Пока не нажимайте OK. Мастеру необходимо настроить обе карты. На данный момент вы настроили первую карту. Вы оставите этот мастер открытым, пока будете выполнять следующие действия.

Теперь вы успешно определили первую карту сайта для сравнения. Мастер будет ждать, пока вы определите вторую карту.

Войдите как пользователь с высокими привилегиями и повторно запросите карту сайта

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

  1. Вернитесь в окно браузера Chromium, встроенного в Burp.
  2. Перейдите обратно на страницу входа по адресу http://127.0.0.1:5000. Это фактически выведет вас из учетной записи 'user'.
  3. На странице входа введите admin для имени пользователя и adminpassword для пароля.
  4. Нажмите кнопку Login.
  5. Вы будете перенаправлены на панель управления (dashboard), которая теперь отображает приветственное сообщение для пользователя 'admin' и включает новую ссылку: Go to Admin Panel.
  6. Нажмите на ссылку Go to Admin Panel. Это приведет вас на страницу /admin, которая была недоступна обычному пользователю.

Выполнив эти действия, вы заставили Burp Suite записать запросы к новым конечным точкам (например, /admin) и увидеть другие ответы для существующих конечных точек (например, /dashboard). Текущая карта сайтов в Burp теперь обновлена этой новой информацией.

Выберите "Use current site map" для Map 2 и просмотрите различия

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

  1. Вернитесь в окно Burp Suite, где мастер "Compare site maps" должен быть все еще открыт.
  2. Теперь сосредоточьтесь на области конфигурации "Site map 2".
  3. Так же, как вы делали для первой карты, выберите радиокнопку с надписью Use current site map. На этот раз "текущая" карта содержит все запросы как из сессии с низкими, так и с высокими привилегиями.
  4. Нажмите кнопку OK, чтобы запустить сравнение.

Появится новое окно "Site map comparison", отображающее результаты. Это окно имеет три основные панели, показывающие:

  • Items only in map 1: Конечные точки, которые существовали в первой сессии, но не во второй.
  • Items only in map 2: Конечные точки, которые были обнаружены только во второй сессии. Именно здесь вы найдете проблемы с авторизацией.
  • Items with different responses: Конечные точки, к которым могли получить доступ оба пользователя, но которые вернули разное содержимое.

Посмотрите на список "Items only in map 2". Вы должны увидеть конечную точку /admin. Это сразу же говорит вам о том, что страница /admin доступна или обнаруживаема только пользователем с высокими привилегиями.

Нажмите на запись /dashboard в списке "Items with different responses". В нижней части вы можете увидеть запрос и ответ для каждой карты. Используйте кнопку Diff, чтобы увидеть сравнение бок о бок, которое выделит дополнительную ссылку "Go to Admin Panel", доступную администратору.

Резюме

В этой лабораторной работе вы успешно использовали функцию "Compare site maps" в Burp Suite для анализа элементов управления доступом в приложении. Вы научились систематически фиксировать состояние приложения с точки зрения двух разных пользователей, а затем сравнивать их для автоматического выявления различий.

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