---
# System prepended metadata

title: Модуль №5
tags: [MOE]

---

## Основные методы аутентификации в веб-приложениях

- Аутентификация на основе сессий
- Аутентификация на основе токенов
- Беспарольная аутентификация
- 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