## Основные методы аутентификации в веб-приложениях
- Аутентификация на основе сессий
- Аутентификация на основе токенов
- Беспарольная аутентификация
- Single Sign On
- Двухфакторная аутентификация
- Oauth 2.0/OpenId
## Основные проблемы этого класса уязвимостей
К сожалению, нет универсального варианта аутентификации, и зачастую в приложениях могут быть реализованы гибридные схемы.
Недостатки таких реализаций чаще всего лежат в плоскости безопасного дизайна механизма аутентификации.
Для некоторых методов существуют свои варианты атак, но к наиболее общим можно отнести:
- Account Brute force
- Password Spray
- Cred Stuffing
- One Time Password Brute Force
- Password Reset
- Session puzzling
- Session confusion
- Cache deception
- Logical Errors
## Общие принципы защиты механизмов аутентификации и управления сессиями
- использовать жестко закрепленный набор символов для работы с аккаунтами, следить, чтобы они были case sensitive
- не позволять аутентифицироваться пользователям, от имени которых может работать приложение или его сервис
- создание механизмов проверки пароля на "стойкость"
- проверка длины
- проверка использования спец символов
- проверка пароля на утечках
- создание механизма безопасного сравнеиня паролей
- использование только шифрованного соединения для взаимодействия
- ...
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Authentication_Cheat_Sheet.md
## Примеры и практическое задание
Oauth

https://portswigger.net/web-security/all-labs
## Дополнительные данные
* https://github.com/D4Vinci/CWFF
* https://github.com/Bo0oM/fuzz.txt
* https://github.com/Josue87/gotator
* https://github.com/sc0tfree/mentalist
* https://github.com/LandGrey/pydictor
* https://github.com/skahwah/wordsmith
* https://github.com/six2dez/OneListForAll
* https://github.com/ignis-sec/Pwdb-Public
* https://github.com/1N3/IntruderPayloads
* https://github.com/fuzzdb-project/fuzzdb
* https://github.com/danielmiessler/SecLists
* https://github.com/FlameOfIgnis/Pwdb-Public
* https://github.com/berzerk0/Probable-Wordlists
* https://github.com/laconicwolf/Password-Scripts
* https://github.com/initstring/passphrase-wordlist
* https://github.com/random-robbie/bruteforce-lists
* https://github.com/govolution/betterdefaultpasslist
* https://github.com/insidetrust/statistically-likely-usernames
* https://utkusen.com/blog/generating-personalized-wordlists
* https://github.com/sorokinpf/cth_wordlists/tree/master/keyboard