Немного про ошибки реализации SMS-аутентификации.



Как-то давно, я уже описывал некоторые ошибки, которые можно найти в SMS-аутентификации:

https://blog.deteact.com/ru/common-flaws-of-sms-auth/



Но с каждым годом, с каждым новым проектов встречаются все новые и новые ошибки и способы. Вот еще 2 таких, которые встречали в этом году:



Обход лимитов на ввод кода с помощью Race Condition.

Тут ситуация такая, что мы запрашиваем код и у нас есть 3 попытки ввести код, после чего сессия протухает. Это получилось обойти с помощью Race Condition, т.е. мы отправляем множество потоков на подтверждение кода и тем самым вместо 3 попыток получаем несколько десяток, а может и сотни, в зависимости от ситуации.



SMS-Flood через разные эндпоинты, которые позволяют запрашивать код.

Такое обычно срабатывает, если сервис с большим функционалом и там есть множество разных ручек через которые можно запрашивать СМС. У меня была ситуация, что было 10+ таких ручек и каждая ручка позволяет нам запрашивать СМС несколько раз, после чего блокирует на некоторое время и на каждом этом эндпоинте свои лимиты, так как они должны работать вне зависимости друг от друга (общие лимиты в данном случае были бы вредны бизнесу). Таким образом, чередуя эндпоинты можно в моменте вызвать несколько смс сразу или в медленном темпе рассчитав время блокировки.



#sms #auth