M
METASCAN News & PoC
@metascan_news
09.04.2026 11:18
📲 Уязвимости SMS-рассылок и как от них защититься

Отправки SMS встречаются на самых разных сайтах и используются для множества задач: регистрации, восстановления пароля, рассылки промокодов, аутентификации, подтверждения платежей — и множества других важных операций.

При недостаточной защите таких рассылок появляются серьёзные риски. Например, злоумышленник может подобрать код и получить доступ к чужому аккаунту, а вы сожжёте весь баланс на отправку SMS и ваши номера попадут в спам-списки.

Мы в Metascan уже не раз успешно находили подобные уязвимости, которые грозили значительными рисками — так мы помогли нашим клиентам избежать финансовых и репутационных потерь, связанных с отправкой SMS-рассылок.

🔓 Один из таких сценариев позволял использовать группу слабостей в реализации SMS-рассылки и получить доступы к чужим аккаунтам:

1. Отсутствие рейт-лимита на отправку SMS
POST /api/v1/sms_send
{"phone": 79999999999}

Несмотря на то, что пользователь видит сообщение о возможности повторной отправки SMS только спустя определённое время, при отправке запроса напрямую сервер всё равно принимает его и отправляет новую SMS.


2. Амплификация кода в одном HTTP-запросе
POST /api/v1/sms_confirm
{"code": 0000, "code": 0001, "code": 0002, "code": 0003, ...}

Иногда приложение может обрабатывать несколько кодов за раз в одном HTTP-запросе, что позволяет обойти некоторые проверки на стороне сервера.

3. В комбинации первой и второй уязвимостей можно отослать большое количество SMS и снизить объём необходимых попыток до минимума, в результате чего злоумышленник может обойти проверку SMS-кода и захватить аккаунт пользователя.

📌 Как показывает наша практика, уязвимости в отправке и проверке SMS-кодов до сих пор повсеместны. Мы выделили две ключевых проблемы и способы их решения:

1. Неограниченная отправка SMS
Необходимо убедиться, что все запросы проверяются на стороне сервера, а не только в интерфейсе. К таким проверкам относятся:
• капча
• уникальные CSRF-токены
• ограничение по времени на повторную отправку SMS
• ограничение на отправку множественных SMS на разные номера с одного IP
• инвалидация предыдущего кода при отправке нового
• срок жизни кода — 5 минут или меньше

2. Недостаточная проверка ввода SMS-кода
Функции подтверждения кода могут быть подвержены различным проблемам. Важно осуществлять корректные проверки:
• валидация рейт-лимита на стороне сервера с временным интервалом
• проверка одного кода за раз (предотвращение амплификации)
• не допускать использование одного и того же кода для разных действий
• корректная обработка параллельных запросов (гонок)
• успешный ввод кода должен проверяться на сервере до назначения сессии
• обработка номера по RFC 5341 — без обхода лимитов через служебные поля

Несмотря на простоту отправок SMS, в таких рассылках присутствует много тонкостей, которые стоит учитывать, чтобы не допустить использования особенностей этого функционала злоумышленниками.

#Metascan #pentest #redteam #Metascan_news
🔥 7
👀 6
👍 4
5 458

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram
M

METASCAN News & PoC

387
Сканер уязвимостей с экспертным сопровождением: https://metascan.ru
Открыть в Telegram