Введение
В этой лабораторной работе вы научитесь использовать Burp Sequencer, мощный инструмент в составе Burp Suite для анализа качества случайности токенов сессий приложения. Предсказуемые токены сессий могут быть угаданы или рассчитаны злоумышленником, что приводит к уязвимостям угона сессий.
К концу этой лабораторной работы вы сможете захватывать запросы на вход в систему, отправлять их в Burp Sequencer, настраивать инструмент для анализа конкретного токена и интерпретировать результаты для оценки его случайности. Это фундаментальный навык для оценки безопасности веб-приложений.
Поиск запроса на вход, устанавливающего cookie сессии
На этом шаге вы запустите Burp Suite, используете встроенный браузер для входа в тестовое приложение и найдете запрос, который устанавливает сессию.
Сначала вам нужно запустить Burp Suite. Обычно его можно найти в меню приложений или запустить из терминала. Для этой лабораторной работы мы предполагаем, что Burp Suite готов к запуску.
- Откройте Терминал с рабочего стола.
- Запустите Burp Suite. Точная команда может отличаться, но часто это скрипт. Для данной среды мы предполагаем, что он доступен.
- После открытия Burp Suite перейдите на вкладку
Proxy, а затем на подвкладкуIntercept. Убедитесь, что перехват в данный момент выключен, нажав кнопкуIntercept is on. - Далее перейдите на вкладку
Proxy->HTTP history. Здесь будут регистрироваться все сетевые запросы. - Нажмите кнопку
Open Browser. Это запустит предварительно настроенный браузер Chromium от Burp. - В браузере перейдите на страницу входа. Для этой лабораторной работы мы будем использовать гипотетическую страницу входа. В реальном тестировании это будет ваше целевое приложение.
- Введите любые учетные данные, например,
userв качестве имени пользователя иpasswordв качестве пароля, и нажмите кнопку входа. - Вернитесь в окно Burp Suite и посмотрите на вкладку
Proxy->HTTP history. Вы должны увидеть список запросов. Найдите запросPOSTк конечной точке входа. Щелкните по нему. - В окне просмотра запроса/ответа ниже нажмите на вкладку
Response. Найдите заголовокSet-Cookie. Он будет выглядеть примерно так:
HTTP/1.1 302 Found
...
Set-Cookie: sessionID=q8f...; path=/; HttpOnly
...
Этот sessionID является токеном, который мы хотим проанализировать. Вы успешно определили целевой запрос.
Щелкните правой кнопкой мыши по запросу в Proxy History и выберите 'Send to Sequencer'
На этом шаге вы отправите обнаруженный запрос на вход в инструмент Burp Sequencer для анализа.
Теперь, когда вы нашли запрос POST, который устанавливает cookie сессии, в вашей истории Proxy, вам нужно выделить его для анализа.
- На вкладке
Proxy->HTTP historyубедитесь, что выбран правильный запросPOST. - Щелкните правой кнопкой мыши в любом месте строки запроса в таблице истории. Откроется контекстное меню с множеством опций.
- В контекстном меню найдите и нажмите
Send to Sequencer.
Это действие отправляет копию выбранного запроса в инструмент Sequencer. Теперь вы увидите, что заголовок вкладки Sequencer станет оранжевым, что указывает на получение нового элемента.
- Нажмите на вкладку
Sequencer, чтобы переключиться на этот инструмент. Вы увидите отправленный вами запрос, загруженный в панель "Live Capture Request".
В Sequencer выберите ответ, содержащий cookie
На этом шаге вы убедитесь, что Burp Sequencer может корректно отправлять запрос и получать ответ, содержащий токен сессии.
На вкладке Sequencer вы увидите запрос, который вы отправили из Proxy. Прежде чем вы сможете настроить расположение токена, вам нужно убедиться, что Sequencer успешно получает ответ.
- На вкладке
Sequencerнайдите панель "Select Live Capture Request". Запрос уже должен быть загружен. - Нажмите кнопку
Start live capture, расположенную в верхней части этой панели.
Burp отправит запрос один раз и отобразит полученный ответ. Это позволит вам проверить, что запрос действителен и что сервер отвечает токеном сессии, как ожидалось. Ответ появится в панели под запросом.
Вы должны увидеть заголовок Set-Cookie в ответе, точно так же, как вы видели его в истории Proxy. Это подтверждает, что Sequencer готов к следующему этапу настройки. Если вы получите ошибку, возможно, вам придется вернуться в Proxy и найти другой запрос.
Настройте расположение токена в ответе
На этом шаге вы укажете Burp Sequencer, где именно искать токен сессии в ответе сервера. Это самый важный шаг настройки.
После запуска захвата в реальном времени и получения действительного ответа вы должны определить местоположение токена, который хотите проанализировать.
- Прокрутите вниз до раздела "Token Location Within Response".
- У вас есть два основных варианта:
Custom locationиDefined in a cookie. Поскольку токен находится в заголовкеSet-Cookie, второй вариант является самым простым. - Нажмите на переключатель рядом с
Defined in a cookie. - Активируется выпадающее меню. Нажмите на него и выберите имя cookie сессии, которое вы определили ранее (например,
sessionID).
Выбирая cookie, вы сообщаете Sequencer, чтобы он автоматически извлекал значение этого конкретного cookie из каждого получаемого ответа. Это значение будет анализироваться на предмет случайности.
После выбора cookie настройка завершена. Sequencer теперь знает, какой запрос отправлять и где найти токен в ответе.
Запустите захват в реальном времени и проанализируйте результаты случайности
На этом шаге вы начнете собирать большую выборку токенов, а затем используете статистический движок Sequencer для анализа их случайности.
После завершения настройки вы готовы начать анализ.
- Снова нажмите кнопку
Start live capture. На этот раз Burp будет непрерывно отправлять запрос и собирать токены сессии из каждого ответа. - Наблюдайте за панелью результатов "Live Capture". Вы увидите увеличение чисел
Request countиTokens collected. - Продолжайте сбор до тех пор, пока не соберете как минимум 2000 токенов. Для тщательного анализа рекомендуется от 10 000 до 20 000 токенов, но для данной лаборатории достаточно 2000.
- Как только у вас будет достаточно токенов, нажмите кнопку
Pause, а затем кнопкуAnalyze now.
Burp выполнит ряд статистических тестов над собранными токенами. Результаты будут отображены на нескольких вкладках.
- Сосредоточьтесь на вкладке
Summary. Она дает общую оценку качества токена. Наиболее важным показателем является общее качество случайности, которое оценивается в битах эффективной энтропии.
Большое количество энтропии (например, 128 бит) указывает на очень сильный, непредсказуемый токен. Низкое количество (например, менее 64 бит) может указывать на слабость, которую можно использовать. В сводке будет дана четкая оценка: "Excellent", "Good", "Poor" или "Insecure".
Вы можете изучить другие вкладки, такие как Character-level analysis и Bit-level analysis, чтобы глубже изучить любые обнаруженные потенциальные слабости.
Итоги
В этой лаборатории вы успешно научились использовать Burp Sequencer для проведения статистического анализа токенов сессии.
Вы отработали весь рабочий процесс:
- Захват запроса на вход, который устанавливает cookie, с помощью Burp Proxy.
- Отправка этого запроса в инструмент Sequencer.
- Настройка Sequencer для определения местоположения токена сессии в ответе сервера.
- Запуск захвата в реальном времени для сбора большой выборки токенов.
- Анализ собранных данных для определения эффективной энтропии и общего качества случайности токена.
Этот процесс является критически важной частью любого теста безопасности веб-приложений, поскольку он помогает выявить одну из наиболее распространенных и серьезных уязвимостей: предсказуемое управление сессиями.
