## Основные методы аутентификации в веб-приложениях - Аутентификация на основе сессий - Аутентификация на основе токенов - Беспарольная аутентификация - 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://hackmd.io/_uploads/S1jO6qkj3.png) 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