BD hunt-session
Поиск уязвимостей управления сессиями — фиксация сессии (без регенерации при входе), недостаточное аннулирование при выходе / смене пароля / смене email, предсказуемые или низкоэнтропийные идентификаторы сессий, JWT как сессия без exp/отзыва, пробелы в ротации/обнаружении повторного использования refresh-токенов, привязка сессий OAuth/SSO, понижение DBSC (привязанной к устройству сессии), проблемы с атрибутами cookie (Secure/HttpOnly/SameSite/__Host-). Проверка с двумя реальными сессиями (злоумышленник А + жертва Б), сравнение тел каждые 200, подтверждение OOB для цепочек кражи. От среднего до критического (фиксация → захват админки, без аннулирования → постоянный ATO).
машинный переводПоказать оригиналСкрыть оригинал«Hunt Session Management vulnerabilities — session fixation (no regener…»
Hunt Session Management vulnerabilities — session fixation (no regeneration on login), insufficient invalidation on logout / password-change / email-change, predictable or low-entropy session IDs, JWT-as-session with no exp/revocation, refresh-token rotation/reuse-detection gaps, OAuth/SSO session linkage, device-bound-session (DBSC) downgrade, and cookie attribute issues (Secure/HttpOnly/SameSite/__Host-). Validate with TWO real sessions (attacker A + victim B), body-diff every 200, and OOB confirmation for theft chains. Medium to Critical (fixation→admin hijack, no-invalidation→persistent ATO).
Поиск уязвимостей управления сессиями — фиксация сессии (без регенерации при входе), недостаточное аннулирование при выходе / смене пароля / смене email…
Как процесс D 44/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 1
✓ Критических и высоких находок нет
Средние и низкие: 1
-
низкая Секреты в коде
secret-password-literalSKILL.md:118Захардкоженный пароль / ключ (возможно, пример) (определение детектора / чёрного списка)-d "username=at…@….com&password=Corr…se1" -o /dev/null
детектор
Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - заметка
frontmatter-keyнеизвестное поле фронтматтера "sources" - заметка
frontmatter-keyнеизвестное поле фронтматтера "report_count"
Процессный рейтинг: все десять параметров 44/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 60Инструменты и файлы. Используются инструменты (bash, web), но во frontmatter они не объявлены
- 70Стоимость исполнения. Тело инструкции 4737 токенов
- 85Шаги. Шагов: 53, расплывчатых формулировок: 1
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющих операций нет
- 100Отчётность по ходу. Скилл сообщает о ходе работы
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 603 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 16 заголовков
- +3Пошаговые инструкции: 53 пунктов
- +4Есть примеры (11 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 70.