Тема
Pwn-сессии и захват токенов
Pwn-сессия хранит актуальный контекст авторизации отдельного пользователя: cookies и чувствительные заголовки. WebVulnFinder может применять этот контекст к запросам Repeater, Intruder, автоматическим тестам и контролируемым AI-проверкам, в том числе для воспроизводимого сравнения поведения разных пользователей.
Сначала определите чувствительные данные
Перед использованием сессий настройте в проекте списки:
SECURE_HEADERS— имена авторизационных и других чувствительных заголовков;SECURE_COOKIE— имена cookies, которые подтверждают авторизацию или содержат чувствительные значения.
Эти списки используются при создании проверок запросов без авторизации: WebVulnFinder удаляет отмеченные данные и сравнивает поведение API с исходным запросом. Они также определяют смысл захваченного контекста при последующих тестах и помогают проверять, не отразилось ли чувствительное значение в ответе.
Обычный захват из Proxy
При проксировании трафика WebVulnFinder связывает авторизационные заголовки и cookies с кодом Pwn-сессии. Заголовок Authorization учитывается автоматически; дополнительные авторизационные заголовки берутся из SECURE_HEADERS. Cookies обновляются по фактически отправляемым запросам и получаемым ответам.
Обычно новый токен становится известен продукту, когда приложение отправляет следующий запрос с этим токеном. Для активного пользовательского сценария этого достаточно: сессия обновляется по мере работы с приложением.
Явный захват из других инструментов Burp
Чтобы контролируемо обновить Pwn-сессию запросом из Repeater, Intruder или другого инструмента Burp, добавьте в запрос:
X-Pwnfox-Color: <цвет>— выбирает сессию для текущего HTTP-сервиса;- заголовок-маркер захвата. По умолчанию это
X-Capture-Session; имя можно изменить в проектной «Настройке захвата сессии», а его значение не имеет значения.
Только запрос с обоими заголовками обновляет cookies, чувствительные заголовки и значения из правил захвата. В Repeater и Intruder маркер можно переключить из контекстного меню редактора запроса: пункт «Добавить маркер захвата сессии» добавляет настроенный заголовок со значением true, а для уже помеченного запроса меню предлагает удалить маркер.
Применение сессии правилом Burp
Для того чтобы Intruder или другие расширения всегда работали с актуальной сессией, в Burp Session Handling Rules можно настроить их актуализацию через реализацию хука WebVulnFinder. Для этого настройте, когда оно должно применяться, например при наличии query параметра updateSession, выберите scope и подключите реализацию плагина «Применить Pwn-сессию WebVulnFinder». WebVulnFinder подставляет актуальные cookies и заголовки на основе значения заголовка X-Pwnfox-Color: <цвет>. Если точного совпадения нет, запрос не изменяется. При применении сессии обновляются только значения cookies, которые уже есть в запросе. Отсутствующие cookies и заголовок Cookie не добавляются. Для авторизационных заголовков действует то же правило: отсутствующий заголовок не создаётся.

Захват значения из ответа
Если приложение обновляет токен фоновым запросом, после получения нового значения пользовательская активность может отсутствовать. В этом случае ожидание следующего запроса откладывает обновление Pwn-сессии. Правило в разделе «Настройка захвата сессии» извлекает значение непосредственно из ответа и сразу сохраняет его в выбранное назначение.
Правило задаёт:
- сервис или регулярное выражение для нескольких сервисов, выражение с одной группой захвата для значения и шаблон пути запроса;
- где искать значение: в теле ответа или в именованном заголовке. Для нового правила выбрано тело, а в поле имени заголовка предложен
Location; - назначение: заголовок, cookie или переменная, а также его имя;
- шаблон целевых сервисов;
- шаблон вставки с
$1на месте найденного значения. - необязательный «Комментарий для ИИ», объясняющий модели назначение переменной.
Например, для redirect-ответа выберите источник «Заголовок», оставьте имя Location и задайте regexp для токена в URL перехода. Проверка не зависит от HTTP-статуса, поэтому такое правило работает и с ответами перенаправления.
Если одинаковый ответ приходит с нескольких доменов, укажите в поле «Сервис для захвата или регулярное выражение» шаблон полного адреса сервиса, например https://(auth|login)\.example\.com:443. Для одного сервиса можно оставить обычный адрес. Шаблон должен совпадать со всем адресом, включая схему и порт.
Значения, записанные в заголовок или cookie, участвуют в обычном жизненном цикле Pwn-сессии и подставляются в следующие запросы. Переменная сохраняется в сессии и передаётся в global variables Hackvertor. WebVulnFinder сам не подставляет её в запрос и не показывает в таблице checker.
Последнее значение каждого правила и цвета хранится в Burp-проекте. Поэтому новая Pwn-сессия сразу получает ранее захваченные данные, если её сервис совпадает с целевым шаблоном. Сессии для подходящих сервисов из HOSTS создаются также при запуске плагина и изменении списка.
Чтобы посмотреть, скопировать или исправить захваченное значение, откройте контекстное меню правила и выберите «Значение», а затем цвет сессии. В меню показаны только цвета, для которых правило уже захватило значение. Изменённый текст сохраняется и применяется как новое захваченное значение.
Для назначения «Переменная» можно вручную задать значение через пункт «Значение» → «Задать значение переменной…» и выбрать цвет Pwn-сессии. Оно сохраняется как обычное захваченное значение для сервисов, подходящих под правило; следующий захват обновит его.
Через произвольный диалог можно попросить модель предложить правило по сохранённому ответу. Рекомендация покажет совпадение выражения и извлечённое значение; правило начнёт действовать только после принятия.
Помощник может сравнить предложение с уже настроенными правилами. Если новое правило лучше охватывает выдачу или обновление того же значения, он предложит замену существующего правила. В рекомендации будут показаны обе версии и причина замены; её можно отдельно принять или отклонить. Принятая замена сохраняет ранее захваченные значения этого правила.


Использование переменных через Hackvertor
Установите или обновите Hackvertor. Создавать custom tag не нужно: WebVulnFinder регистрирует захваченные значения и вставляет штатный get_*-тег не требующий включения динамического исполнения кода. Например, для variable property1 красной сессии он выглядит так:
text
<@get_webvulnfinder_red_property1/>В Repeater или Intruder тег можно не набирать вручную. Откройте контекстное меню редактора запроса и выберите «Вставить переменную». Если variable определена для нескольких Pwn-сессий, дополнительно выберите цвет. Тег заменит выделенный фрагмент запроса или будет вставлен в позицию курсора.

При выборе «Сменить сессию» WebVulnFinder меняет цвет во всех своих native get_*- тегах запроса: в query, заголовках, cookies и теле. То же происходит, когда сессия выбирается для автоматического теста. Поэтому один шаблон запроса можно использовать для нескольких цветов без ручного исправления каждого тега. Burp Session Handling Action применяет сохранённые cookies и заголовки, но цвет в тегах не меняет.
Инструмент дополнительных HTTP-проверок AI умеет передавать штатные Hackvertor-теги в значениях изменяемых параметров. Для переменных проекта модель получает список уже доступных get_*-тегов и заданные для них комментарии.

Проверка валидности сессий
Назначьте checker, если оставляете плагин надолго работать без наблюдения. Он остановит автоматизацию, если актуализация сессии даст сбой или WAF заблокирует автоматические запросы. Так плагин не будет часами работать вхолостую.
В качестве checker выберите максимально простой API-запрос, который требует авторизацию и без неё возвращает другой HTTP-статус. В таблице наблюдений выделите этот API и выберите «Назначить checker сессии». Назначения и текущие сессии можно просмотреть и проверить вручную в настройках проекта.

Для API сервиса с назначенным checker используется только его собственная сессия: сессия другого домена не подставляется. Если сессии нет или проверка её отклонит, API в дашборде получает состояние ожидания сессии и не передаётся ИИ. После появления сессии анализ может продолжиться. Остановка и повторный запуск дашборда сохраняют состояние объектов в текущем процессе Burp.
Когда назначены checker, автоматизация останавливается после потери сессий на всех сервисах с checker, даже если сессии других доменов ещё есть. Если checker не назначены, остановка происходит при потере всех сессий. Плагин покажет уведомление в Burp и отправит его в Telegram.
Рекомендуемый процесс удержания сессии
- Настройте
SessionHolderчерез Burp Session Handling Rule с extension action WebVulnFinder. Ограничьте его запросами с выбранным уникальным маркером. Для таких запросов плагин будет подставлять актуальную Pwn-сессию. - Напишите скрипт Turbo Intruder, который регулярно отправляет запрос с этим маркером. Если вы используете несколько сессий, скрипт должен отправлять отдельный запрос для каждой сессии.
- Запрос, в ответе на который приходит актуальная сессия, пометьте заголовком захвата. По умолчанию это
X-Capture-Session; имя можно изменить в настройках проекта. Когда ответ вернёт новые cookies или токен, WebVulnFinder сохранит их в соответствующую Pwn-сессию.