Найти в Дзене
The Codeby

BruteForce, как недооцененный вид атаки (Account TakeOver)

Всем Салам. Решил поднять тему BruteForce атак, хотя многие, с пеной у рта, очень часто кричат, что это никогда не прокатывает, зачем об этом писать, ужасный вид атаки и т.д.

Но не буду сейчас кому-то пытаться доказывать, что bruteforce имеет место быть, что это очень эффективный вид атаки. Главное научиться, где и как её правильно применять. Не буду философствовать, сразу перейдем к делу.

Данная статья не обучение тому, как правильно брутфорсить. Я буду здесь описывать примеры, с которыми лично сам сталкивался во время пентеста и багбаунти.

Раньше не уделял особого внимания BruteForce атакам. И вот в начале этой осени во время пентеста я столкнулся с формой регистрации/авторизации пользователей по номеру телефона. И как уже можно догадаться, суть такой авторизации: пользователь вводит номер телефона и ему SMS-кой приходит код подтверждения. Длина кода может быть разной, чаще всего от 4 до 6 цифр. И как вы уже поняли, мы можем перебрать этот самый код из смс, чем он короче, тем легче перебрать. Кроме авторизации, также такое встречается в модуле сброса пароля. Если код будет 6 значный, то вероятность перебора не 100%, зависит от многих факторов:

  • от UpTime самого сервера.

Мне пока что везло, все сервера были с высоким аптаймом, что позволяло достаточно быстро перебирать.

  • от времени жизни кода

Время жизни кода везде разная. Где-то даже можно узнать из ответа, в течение какого времени она будет валидна.

  • от WAF, если он есть
  • от инструментов, с помощью которых это делаем

Инструменты, которые использую - это Burp Suite Intruder и если код 6 значный (в этом случае 1кк вариаций будет), использую Burp Suite Turbo Intruder.

После того, как я столкнулся с этим во время пентеста, решил также проверить На BugBounty. И вот оно, чудо, у одного только Mail было обнаружено на 4 разных сайтах отсутствие защиты от BruteForce SMS-кода и это приводит к захвату любого аккаунта (Account TakeOver), нужно знать только номер телефона.

Подробно про каждый случай, как находил не очевидную слабость в логике приложения, как брутил 6 значный код (1кк), который был активен 3 минуты, как правильно перебирать с помощью turbo intruder, расскажу чуть позже.
А сейчас покажу, как можно делать перебор в Intruder:

  • Ловим запрос, при котором идет подтверждение кода, и отправляем его в Intruder, обычно что-то типа этого.

В данном случае, мы видим где у нас код. Выделяем ее для атаки и переходим на вкладку Payloads.

  • На этой вкладке нам нужно создать payload. Так как перебираем числовой параметр в payload type выбираем numbers и указываем нужный нам интервал.

Тут все отлично, теперь переходим на вкладку Options.

  • Тут уже зависит от UpTime сервера, если он быстрый, то можете уверенно заряжать много потоков.
  • Start Attack ...ждём… Account Takeover.

Пруфы можно посмотреть здесь - HackerOne profile - r0hack (не все репорты еще закрыты)

Всем удачной охоты.

Источник: форум кодебай