Повторно отправьте запрос бронирования после выхода

КибербезопасностьBeginner
Практиковаться сейчас

Введение

Участники Fieldwork Studio могут просматривать забронированный мастер-класс и скачивать подтверждение бронирования. Команда добавила действие Sign out this browser. Возврат на страницу входа выглядит убедительно, но не показывает, продолжает ли работать ранее перехваченный сеанс.

Вы будете использовать Burp Suite Community Edition в Kali как HTTP-прокси и Repeater, сохраните исходные запросы и проверите оба защищённых ресурса после выхода. Результат для передачи — приватные свидетельства запросов и ответов и краткое решение о приёмке без паролей. Вы оцениваете приложение, а не исправляете его сервер.

Предполагаются только базовые навыки ввода в терминале и переключения вкладок. В лабораторной работе объясняются HTTP-ответы, cookie и элементы управления Burp. Все учётные записи и бронирования синтетические, а предоставленная среда изолирована. Используйте только выданную учётную запись и цель курса. Заложите около 65 минут на чтение и обычные ошибки; это авторская оценка, а не результат замера при пробном прохождении новичком.

Проверьте настоящее бронирование участника

На этом шаге вы проверите обычную работу перед тестированием выхода. Откройте Auditor, терминал Kali. Он открывается в /home/labex/project. cat выводит текстовый файл. Прочитайте предоставленное разрешение, учётные данные и адрес сервиса:

cat scope.json

Базовый URL — http://members.test:8080/autumn. Используйте имя пользователя morgan и пароль PaperDay!47. Ваш участник — Morgan Reed с местом P12 на Printmaking. Восклицательный знак является частью пароля; введите его в форму браузера. Не проверяйте другие учётные записи или внешние сайты и не изменяйте данные, код или процессы цели.

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

Откройте Burp. Burp Community уже установлен. В мастере запуска оставьте выбранным Temporary project и нажмите Next. Оставьте выбранным Use Burp defaults, затем нажмите Start Burp. Если появится Burp Suite is out of date, нажмите OK, чтобы продолжить с подготовленной учебной версией. Дождитесь главного окна. Временный проект хранит текущую рабочую область в памяти; для файлов свидетельств этот курс использует явный экспорт XML, а не платную возможность проекта на диске.

Burp — это прокси: подготовленные браузеры отправляют через него свои HTTP-запросы, чтобы вы могли изучить настоящий обмен. В Burp выберите главную вкладку Proxy и подвкладку Intercept. На кнопке должно быть Intercept is off. Если на ней Intercept is on, нажмите её один раз. Перехват приостанавливал бы запросы; вам нужно, чтобы они проходили обычным образом и записывались в историю.

Переключитесь на вкладку LabEx Browser A. Это подготовленный браузер Chromium в том же контейнере аудита, что и Burp. Нажмите адресную строку, введите следующий URL и нажмите Enter:

http://members.test:8080/autumn/

Прочитайте общедоступную страницу мастер-классов и выберите View my booking. Заполните Username и Password выданными учётными данными и нажмите Sign in. Если Chromium предложит сохранить пароль, выберите Never. Вы должны попасть на Your next day of making, где показаны Morgan Reed, Printmaking и место P12.

Нажмите Download booking. Настоящий fieldwork-booking.csv содержит участника, мастер-класс и место. Панель загрузок Chromium внизу показывает скачанный файл; Show all открывает список загрузок. Просмотр общедоступных мастер-классов, просмотр своего бронирования и эта загрузка — обычные функции, которые вы сохраните.

Подтверждённое бронирование Morgan Reed на Printmaking с действием Download booking

Перед скачиванием проверьте участника, мастер-класс и место в карточке бронирования.

Неверный пароль приводит к Sign-in unsuccessful со ссылкой try again. Перейдите по ней и заново введите выданные значения. Ответ Page not found означает неверный путь; вернитесь к точному базовому URL выше. Ошибка соединения браузера означает, что ответ приложения не получен: проверьте URL, завершите мастер Burp и убедитесь, что перехват выключен. Не принимайте сбой соединения за отказ системы безопасности.

Browser B — независимый профиль браузера для следующей лабораторной работы; здесь не используйте его. Две вкладки браузеров и Burp — окна в одном контейнере аудита, а не отдельные виртуальные машины. Переключение вкладок LabEx не сбрасывает цель или вашу работу.

Сохраните исходные запросы в Repeater

На этом шаге вы сохраните запросы, которые уже работали. Переключитесь на Burp, выберите Proxy, затем HTTP history. Найдите запрос GET к /autumn/account на members.test:8080. Запрос — то, что отправляет браузер; ответ — то, что возвращает сервер. GET читает ресурс. HTTP 200 OK означает, что этот запрос получил успешный ответ.

Нажмите строку учётной записи. В редакторе запроса выберите Raw и найдите заголовок Cookie. При входе был выдан сеансовый cookie с именем studio_session: браузер отправляет это значение для идентификации своего аутентифицированного сеанса. Наличие старого cookie — проверяемое вами условие. Очистка cookie браузера и попытка нового запроса без cookie отвечали бы на другой вопрос.

Нажмите строку учётной записи правой кнопкой мыши и выберите Send to Repeater. Repeater позволяет повторно отправить сохранённый запрос и изучить новый ответ. Затем найдите запрос GET к /autumn/booking.csv, нажмите его правой кнопкой и выберите Send to Repeater. Если фильтр истории скрывает запрос CSV, нажмите панель фильтра над таблицей и включите Show all, затем закройте диалог фильтра и снова найдите точный путь. Используйте узел и путь, а не только положение строки.

Выберите главную вкладку Repeater. Первая пронумерованная вкладка запроса, 1, — запрос учётной записи; 2 — запрос бронирования в порядке их отправки. В 1 убедитесь, что цель — http://members.test:8080, строка запроса — GET /autumn/account HTTP/1.1, а исходный cookie studio_session по-прежнему присутствует. Нажмите Send. В панели ответа выберите Raw, чтобы прочитать HTTP/1.0 200 OK и содержимое страницы бронирования.

Выберите 2 и нажмите Send. Ожидайте 200 OK, тип содержимого text/csv и настоящие строки бронирования. Версия HTTP сервера может отличаться от версии запроса; значимые наблюдения — статус и фактическое содержимое бронирования участника.

Оба сохранённых запроса должны использовать один и тот же сеансовый cookie. Сравните значения в Burp, не копируя их в отчёт. Сохраняйте эти два запроса Repeater неизменными на протяжении выхода: не удаляйте и не заменяйте их cookie, не заменяйте цель и не отправляйте через эти вкладки запрос выхода. Успешная исходная проверка делает последующее сравнение осмысленным.

Если вы отправили неверную строку истории, закройте только эту вкладку запроса Repeater и отправьте правильную строку. Определяйте правильный запрос по пути; номера вкладок после этого могут отличаться. Закрытие вкладки запроса отличается от закрытия Burp или сброса VM.

На этом шаге вы отличите видимый выход в браузере от аннулирования сеанса на сервере. Переключитесь на Browser A. На странице бронирования нажмите Sign out this browser. Браузер вернётся на Welcome back, страницу входа.

Одна лишь смена страницы не доказывает, что сервер перестал принимать старый cookie. Переключитесь на Burp, откройте Repeater, выберите свой исходный запрос учётной записи и снова нажмите Send. Оставьте его cookie неизменным. Ожидайте 200 OK и содержимое бронирования Morgan Reed. Старый сеанс по-прежнему предоставляет доступ к учётной записи после выхода.

Выберите исходный запрос бронирования и снова нажмите Send. Ожидайте 200 OK, text/csv и строку бронирования того же участника. Это настоящий успешный ответ загрузки, полученный со старым cookie; страница браузера, выглядящая успешной, или HTTP 200 только с формой входа не подтвердили бы это.

При работающем выходе из текущего браузера оба сохранённых защищённых запроса вместо этого должны получить 401 Unauthorized, что означает отказ приложения принимать этот сеанс. Здесь сервер по-прежнему принимает его на обоих ресурсах. Отклоните изменение выхода на основе наблюдавшихся свидетельств. Вы показали этот конкретный сбой работы сеанса, а не все возможные слабые места приложения.

Убедитесь, что обычное использование по-прежнему возможно. Переключитесь на Browser A, снова войдите с morgan и PaperDay!47, просмотрите бронирование и нажмите Download booking. Это выдаёт новый сеанс и сохраняет обычный рабочий процесс участника. Вернитесь на Burp, не заменяя cookie в двух исходных запросах Repeater. Их последние ответы должны по-прежнему быть ответами после выхода, которые вы экспортируете далее.

Исходный запрос бронирования по-прежнему возвращает CSV Morgan Reed после выхода

Сравните неизменённый Cookie в левой панели Request с 200 OK и настоящей строкой участника в правой панели Response. Один лишь успешный статус не доказал бы доступ к этому бронированию.

Если вы случайно перезаписали исходный cookie или закрыли оба сохранённых запроса, повторите полную проверку: перехватите новый успешный сеанс на обоих ресурсах, сохраните его запросы, выйдите из этого сеанса и затем повторно отправьте именно эти запросы. Cookie нового входа не заменяет cookie сеанса, из которого вы вышли.

Предоставьте приватные свидетельства и ясное решение

На этом шаге вы сохраните фактические HTTP-свидетельства, не включая учётные данные в оценку. Переключитесь на Auditor. Свидетельства запросов и ответов содержат пригодный к использованию сеансовый cookie, поэтому ограничьте доступ перед сохранением.

umask 077 делает вновь создаваемые файлы и каталоги доступными только вашему пользователю. Эта настройка действует в текущем сеансе терминала, а не во всех будущих оболочках. mkdir -p при необходимости создаёт указанный каталог. chmod 700 даёт владельцу права чтения, записи и входа в каталог, не предоставляя доступа группе и остальным.

umask 077
mkdir -p evidence
chmod 700 evidence

Переключитесь на Burp и выберите исходный запрос учётной записи в Repeater. Убедитесь, что его текущий ответ — страница бронирования с 200 OK, полученная после выхода. Нажмите правой кнопкой внутри редактора Request и выберите Save item. Это сохраняет запрос и ответ вместе; Copy to file сохранило бы другой материал.

В диалоге Select a file введите следующий абсолютный путь в File Name:

/home/labex/project/evidence/account-after.xml

Диалог Save item с абсолютным путём свидетельств учётной записи и включённым параметром Base64

Используйте поле File Name ближе к нижнему краю; под ним находится включённый параметр Base64.

Оставьте Base64-encode requests and responses включённым, затем нажмите Save. Base64 безопасно представляет исходные байты внутри XML; он не шифрует cookie. Если появится уведомление об успехе, закройте его кнопкой OK. Повторите Save item для исходного запроса бронирования, используя:

/home/labex/project/evidence/booking-after.xml

Переключитесь на Auditor. chmod 600 разрешает чтение и запись каждого файла только владельцу. ls -l показывает права; ожидайте -rw------- у обоих файлов XML.

chmod 600 evidence/account-after.xml evidence/booking-after.xml
ls -l evidence

Запишите оценку без паролей ниже. > заменяет указанный файл. <<'JSON' начинает here-document: оболочка буквально копирует следующие строки до завершающего JSON на отдельной строке. Числовые значения статусов записываются без кавычек; JSON true — логическое значение. Не включайте cookie, пароли и исходные запросы в этот отчёт.

cat > assessment.json <<'JSON'
{
  "decision": "reject",
  "account_after_logout": 200,
  "booking_after_logout": 200,
  "fresh_sign_in_works": true
}
JSON

Прочитайте оценку, чтобы обнаружить обычные опечатки:

cat assessment.json

Результат для передачи — два приватных элемента XML и эта оценка. Элементы сохраняют запросы с исходным cookie и их реальные ответы; отчёт сообщает обоснованное решение, не повторяя секреты. Проверка сопоставляет эти связи с существующими фактами сервера. Она не создаёт за вас недостающие входы, выходы или повторные запросы и оставляет ваши файлы неизменными. Её обычный запрос общедоступной страницы для проверки сохранности может добавить запись доступа.

Если имя файла неверно, повторите Save item по указанному абсолютному пути и снова примените chmod 600. Если вы сменили каталог, pwd покажет текущий каталог, а cd /home/labex/project вернёт в рабочую область. Не заменяйте недостающие свидетельства написанной вручную строкой об успехе или снимком экрана.

Резюме

Вы установили исходный уровень доступа к настоящему бронированию, сохранили в Burp Repeater два запроса с исходным cookie, вышли и показали, что сервер по-прежнему принимает оба запроса. Возврат браузера на страницу входа не подтвердил аннулирование сеанса. Вы сохранили обычный рабочий процесс и предоставили приватные HTTP-свидетельства с решением об отклонении изменения без паролей.

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