Немного про ошибки реализации SMS-аутентификации.
Как-то давно, я уже описывал некоторые ошибки, которые можно найти в SMS-аутентификации:
https://blog.deteact.com/ru/common-flaws-of-sms-auth/
Но с каждым годом, с каждым новым проектов встречаются все новые и новые ошибки и способы. Вот еще 2 таких, которые встречали в этом году:
✅ Обход лимитов на ввод кода с помощью Race Condition.
Тут ситуация такая, что мы запрашиваем код и у нас есть 3 попытки ввести код, после чего сессия протухает. Это получилось обойти с помощью Race Condition, т.е. мы отправляем множество потоков на подтверждение кода и тем самым вместо 3 попыток получаем несколько десяток, а может и сотни, в зависимости от ситуации.
✅ SMS-Flood через разные эндпоинты, которые позволяют запрашивать код.
Такое обычно срабатывает, если сервис с большим функционалом и там есть множество разных ручек через которые можно запрашивать СМС. У меня была ситуация, что было 10+ таких ручек и каждая ручка позволяет нам запрашивать СМС несколько раз, после чего блокирует на некоторое время и на каждом этом эндпоинте свои лимиты, так как они должны работать вне зависимости друг от друга (общие лимиты в данном случае были бы вредны бизнесу). Таким образом, чередуя эндпоинты можно в моменте вызвать несколько смс сразу или в медленном темпе рассчитав время блокировки.
#sms #auth
Как-то давно, я уже описывал некоторые ошибки, которые можно найти в SMS-аутентификации:
https://blog.deteact.com/ru/common-flaws-of-sms-auth/
Но с каждым годом, с каждым новым проектов встречаются все новые и новые ошибки и способы. Вот еще 2 таких, которые встречали в этом году:
✅ Обход лимитов на ввод кода с помощью Race Condition.
Тут ситуация такая, что мы запрашиваем код и у нас есть 3 попытки ввести код, после чего сессия протухает. Это получилось обойти с помощью Race Condition, т.е. мы отправляем множество потоков на подтверждение кода и тем самым вместо 3 попыток получаем несколько десяток, а может и сотни, в зависимости от ситуации.
✅ SMS-Flood через разные эндпоинты, которые позволяют запрашивать код.
Такое обычно срабатывает, если сервис с большим функционалом и там есть множество разных ручек через которые можно запрашивать СМС. У меня была ситуация, что было 10+ таких ручек и каждая ручка позволяет нам запрашивать СМС несколько раз, после чего блокирует на некоторое время и на каждом этом эндпоинте свои лимиты, так как они должны работать вне зависимости друг от друга (общие лимиты в данном случае были бы вредны бизнесу). Таким образом, чередуя эндпоинты можно в моменте вызвать несколько смс сразу или в медленном темпе рассчитав время блокировки.
#sms #auth