Тестирование аутентификации и сеансов
Проверяйте перебор учётных данных, фиксацию сеанса, слабые места JWT и небезопасные токены «запомнить меня».
«Тестирование аутентификации и сеансов» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Область тестирования аутентификации
Тестирование аутентификации охватывает перебор учётных данных при входе, подстановку учётных данных, уязвимости управления сеансами, уязвимости JWT, небезопасные токены «запомнить меня» и недостатки сброса пароля. Эти проблемы часто приводят к полному захвату учётной записи.
Перечисление имён пользователей
Разные сообщения об ошибках для недействительного имени пользователя и недействительного пароля раскрывают действительные имена пользователей. Ищите различия во времени ответа, тексте сообщений, кодах состояния HTTP и URL перенаправления.
# Test login with:
# Valid user, wrong pass → "Incorrect password"
# Invalid user → "User not found"
# This confirms valid usernames!
# Time-based: longer response for valid users
# (bcrypt hash computed only for valid users)Перебор входа с помощью интрудера Burp
Используйте интрудер с атакой «Снайпер» или «Вилы» для перебора данных входа. Отметьте поле пароля как позицию полезной нагрузки, загрузите словарь и отфильтруйте ответы по коду состояния или различию в длине.
# In Burp Intruder:
# 1. Send login request to Intruder
# 2. Mark: username=admin&password=§PASS§
# 3. Attack type: Sniper
# 4. Payload: passwords.txt from SecLists
# 5. Filter: 302 redirects = successПодстановка учётных данных
Подстановка учётных данных использует пары имя пользователя:пароль из утёкших баз данных (Have I Been Pwned) против новых целей. Этот метод эффективен, потому что пользователи повторно используют пароли в разных сервисах.
# Tools:
# Hydra for HTTP login forms
hydra -L users.txt -P passwords.txt \
192.168.1.100 http-post-form \
"/login:user=^USER^&pass=^PASS^:Invalid"Анализ токенов сеанса
Перехватывайте токены сеансов и анализируйте их предсказуемость (последовательные ID), длину (короткие токены легко угадать), кодирование (декодируйте Base64, чтобы увидеть структуру) и энтропию (пропускайте токены через Sequencer Burp).
# Burp Sequencer:
# Proxy > HTTP History
# Right-click login response
# Send to Sequencer
# Start live capture → AnalyzeФиксация сеанса
Фиксация сеанса возникает, когда сервер не меняет ID сеанса после входа. Запомните ID сеанса до входа и проверьте, сохраняется ли он после аутентификации.
Тестирование JWT
Токены JSON Web Token содержат утверждения аутентификации. Проверяйте путаницу алгоритмов (alg:none), возможность перебора слабого секрета и инъекцию заголовков. jwt.io декодирует JWT для проверки.
# Decode JWT
echo "eyJ..." | base64 -d
# None algorithm attack:
# Modify header: {"alg":"none"}
# Remove signature
# Encode and submit
# Brute force HS256 secret:
john --format=HMAC-SHA256 token.txtНедостатки сброса пароля
Распространённые недостатки сброса: предсказуемые токены сброса (короткие или последовательные), инъекция заголовка Host (токен отправляется на домен атакующего), повторное использование токена (один и тот же токен действителен несколько раз) и отсутствие срока действия.
# Test host header injection:
# Modify Host: header in reset request:
Host: attacker.com
# If token arrives at attacker.com = vulnerability
# Test token entropy:
# Collect multiple tokens
# Check for patterns or short lengthБезопасность токенов «запомнить меня»
Токены «запомнить меня» должны быть криптографически случайными, длинными (не менее 128 бит), храниться на сервере в виде хеша, использоваться один раз и быть привязанными к учётной записи пользователя. Проверяйте их предсказуемость и возможность повторного использования.
Обход многофакторной аутентификации
Распространённые способы обхода MFA: изменение ответа (замена неудачного результата на успешный), прямой доступ к URL после частичной аутентификации, перебор коротких OTP без ограничения скорости и подмена SIM-карты (социальный, а не технический метод).
Тестирование блокировки учётной записи
Проверьте, приводит ли повторный неудачный вход к блокировке. Отсутствие блокировки означает риск перебора. Слишком агрессивная блокировка создаёт риск отказа в обслуживании. Проверьте, снимается ли блокировка после истечения времени ожидания или требует действий администратора.
Быстрая проверка
Какая атака JWT изменяет поле алгоритма на «none», чтобы обойти проверку подписи?
Итоги: тестирование аутентификации и сеансов
Тестирование аутентификации охватывает всю цепочку — от первоначального входа до управления сеансом. Ищите перечисление имён пользователей, отсутствие блокировки, предсказуемые токены, путаницу алгоритмов JWT, инъекции при сбросе пароля и обходы MFA. Одной уязвимости в этой цепочке может быть достаточно для полного захвата учётной записи любого пользователя.
Часто задаваемые вопросы
Урок «Тестирование аутентификации и сеансов» бесплатный?
Да — полный текст урока «Тестирование аутентификации и сеансов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Тестирование аутентификации и сеансов»?
Проверяйте перебор учётных данных, фиксацию сеанса, слабые места JWT и небезопасные токены «запомнить меня». Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Тестирование аутентификации и сеансов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Прокси Burp Suite и перехват запросов
- Тестирование уязвимостей внедрения
- Тестирование аутентификации и сеансов
- Уязвимости загрузки файлов и SSRF