AC hunt-mfa-bypass
Поиск обхода MFA / 2FA — 7 различных паттернов. (1) MFA не применяется к конфиденциальным конечным точкам (смена пароля, смена электронной почты без проверки MFA), (2) пропуск шага MFA через прямое обращение к URL после входа, (3) повторное использование MFA-токена (один и тот же код принимается дважды), (4) брутфорс 6-значного OTP без ограничения скорости (10^6 попыток со скоростью сервера), (5) состояние гонки при проверке OTP, (6) дамп резервных кодов через /api/me, (7) понижение уровня резервного фактора (SMS-фактор без ограничения скорости). Плюс цепочка: кража cookie + парольный оракул + отсутствие повышения уровня = ATO без проверки MFA. Обнаружение: отслеживание потока аутентификации в Burp, поиск каждого перехода состояния, проверка, является ли MFA middleware-gated или per-endpoint, проверка энтропии OTP и ограничения скорости на OTP-validate. Проверка: сеанс злоумышленника, достигающий состояния после MFA. Используйте при поиске обхода аутентификации, потоков MFA, цепочек примитивов, ведущих к ATO.
машинный переводПоказать оригиналСкрыть оригинал«Hunt MFA / 2FA bypass — 7 distinct patterns. (1) MFA not enforced on s…»
Hunt MFA / 2FA bypass — 7 distinct patterns. (1) MFA not enforced on sensitive endpoints (password change, email change accept without MFA challenge), (2) MFA-step skip via direct navigation to post-login URL, (3) MFA-token replay (same code accepted twice), (4) brute-force the 6-digit OTP without rate limit (10^6 attempts at server speed), (5) race condition on OTP validation, (6) recovery-code dump via /api/me, (7) backup factor downgrade (SMS factor with no rate limit). Plus the chain: cookie theft + password oracle + no step-up = ATO without MFA challenge. Detection: trace auth flow in Burp, find every state transition, check if MFA is middleware-gated vs per-endpoint, check OTP entropy and rate limit on OTP-validate. Validate: attacker session reaching post-MFA state. Use when hunting auth bypass, MFA flows, chaining primitives toward ATO.
Поиск обхода MFA / 2FA — 7 различных паттернов.
Как процесс C 59/100 · Есть пробелы — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "sources" - заметка
frontmatter-keyнеизвестное поле фронтматтера "report_count"
Процессный рейтинг: все десять параметров 59/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 1, без проверки текущего состояния
- 60Ошибки и развилки. Развилок: 2
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Шаги. Шагов: 16
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1930 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 856: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 11 заголовков
- +3Пошаговые инструкции: 16 пунктов
- +4Есть примеры (8 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 79.