Чтож... Поговорим про уязвимости в процессе аутентификации.
Что это такое?❓
Аутентификация — это проверка подлинности лица, которое хочет получить доступ к системе. Если говорить проще, то система задаёт нам вопрос: «А ты точно продюсер?» Если система совсем глупая, то можно ответить «Да» и ни о чём не переживать. Но чаще всего это нужно будет подтвердить.😍
Самый базовый способ — проверка пароля. Не буду напоминать, что хранить пароль в БД в открытом виде нельзя. Так же не стоит скидывать его мне в личку @ju57_4_cu63 вместе с логином.😎
А в чём подвох?🤔
Даже не зная пароля, на этом этапе можно получить полезную информацию. Картинка к посту, конечно, мемная, но со смыслом.
Информативно описывать ошибки - это хорошо, но есть нюанс... Если явно указывать, что именно неверно - логин или пароль, то логины можно перебрать по словарю. Если приходит ошибка «неверный пароль», значит, пользователь существует. А это уже пригодится для дальнейшей атаки.
И это всё?😏 Конечно нет. Для выявления существующих пользователей может помочь задержка по времени при проверке пароля, различия в ответах сервера для существующего и несуществующего пользователя, даже блокировка аккаунта при вводе некорректного пароля.
Чё ж делать, чё ж делать🔥
Вот небольшой список рекомендаций:
➖Не стоит сливать действующие пароли: если пароль известен - мало что поможет. Все попытки аутентификации по
HTTP нужно перенаправлять на HTTPS;➖При некорректной попытке входа не сообщайте пользователю, какое именно поле неверно. Лучше использовать универсальную ошибку;
➖Валидируйте пароли, запрещая слишком простые и слишком длинные.
Идите и пробуйте сами😉
Описанные методы можно потрогать в следующих лабах) Удачки😮
• Username enumeration via different responses
• Username enumeration via subtly different responses
• Username enumeration via response timing
• Username enumeration via account lock
↖️ 📕тг • 🤬чатик • ✏️посты
#web #writeup
