В этой статье мы исследуем ошибки реализации CAPTCHA и CSRF-токенов, в результате чего научимся рассылать SMS в любом количестве через гейт Vodafone.

WARNING

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

 

Обзор онлайн SMS-сервиса Vodafone

Наш сегодняшний подопытный, портал http://mts.ua, раньше принадлежал «МТС Украина». Эту контору выкупил Vodafone. Есть на этом сайте и форма отправки SMS.

Защищена она цифровой CAPTCHA из четырех символов. Стоит отметить, что форма позволяет отправлять SMS только клиентам Vodafone с префиксами номеров:

+38050
+38066
+38095
+38099

Теперь посмотрим на саму CAPTCHA. Как видишь, цифры вполне различимы. Они имеют красный цвет, но их верх обрезан, и расположены они очень близко друг к другу.

А теперь приглядимся более внимательно к той части скрипта, которая отображает CAPTCHA. Если мы сформируем ссылку

http://www.mts.ua/?r=site/captcha&v=5981aff096f17&widgetId=messager&width=115&height=42&backColor=0xffffff&foreColor=0xff0000

то увидим CAPTCHA с высотой 42 пикселя и 115 пикселей шириной. Изменив значения на 242 и 315, мы получим удивительный результат: обрезанный верх цифр уйдет и расстояние между символами увеличится.

При отправке SMS скрипту http://www.mts.ua/ru/online-services/send-sms/ через метод POST передаются следующие параметры:

  • YII_CSRF_TOKEN — это CSRF-токен, который нужно прочитать из HTML один раз при подготовке рассылки;
  • widgetId:'messager' — это стандартное значение, оно не меняется;
  • MessageForm[network]:'38050' — из значения ясно, что это мобильная сеть;
  • MessageForm[phone]:'123-45-67' — номер телефона, куда отправляем SMS;
  • MessageForm[encoding]:'cyrilic' — кодировка сообщения, можно менять;
  • MessageForm[is_translit]:'0' — транслитерация (0 — выключена, 1 — включена);
  • MessageForm[message]:'Привет 123' — сам текст сообщения;
  • MessageForm[verifyCode]:'4444' — распознанная CAPTCHA.

Также не стоит забывать, что нужно хранить cookies! В дальнейшем мы к этому вернемся.

 

Разработка SMS-бомбера

Попробуем разработать SMS-бомбер — скрипт, который будет рассылать через гейт множество однотипных SMS-сообщений. Разрабатывать будем на Python 2.x, также нам понадобятся модули requests, pytesseract, Image.

Скрипт мы будем разрабатывать под Windows, с чем и связаны особенности установки Tesseract и настройки путей.

В самом начале мы получаем CSRF-токен:

def get_csrf():

    xhtml=get_url("http://www.mts.ua/ru/online-services/send-sms/",1)
    xs=xhtml.find("var csrfToken = '")
    xl=len("var csrfToken = '")
    csrf_=xhtml[xs+xl:xs+xl+40]

    return csrf_

Функция очевидная — обычный поиск текста. CSRF-токен получаем всего один раз за всю рассылку.

Теперь нужно получить CAPTCHA и распознать ее. Для этого мы будем использовать Tesseract. Вначале нужно установить саму программу и модуль Python к ней. Полный исходный код функции можно посмотреть в скрипте, который я приведу в конце статьи.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


8 комментариев

  1. baragoz

    20.12.2017 at 13:09

    Да начнется укросрач!

  2. Antek

    20.12.2017 at 15:57

    Добавлю ещё, что необходимо наличие пакета tesseract. В функции send_sms() переменную r надо сдвинуть на 4 пробела вправо.
    И для Ubuntu pytesseract.pytesseract.tesseract_cmd = ‘/usr/bin/tesseract’
    tessdata_dir_config = ‘—tessdata-dir «/usr/share/tesseract-ocr/tessdata»‘

  3. juwilie

    20.12.2017 at 18:59

    Познавательно, спасибо

  4. Antony

    23.12.2017 at 14:32

    По-больше бы таких статей, так держать !

  5. foozzi

    23.12.2017 at 21:40

    собственно уже прикрыли, не робит

  6. foozzi

    23.12.2017 at 21:44

    а не робит потому что, поставили гуглокапчу

  7. main93event

    24.12.2017 at 11:51

    Го статью о обходе гугклокапчи)

Оставить мнение

Check Also

ОС максимальной секретности. Выбираем дистрибутив для обхода блокировок и защиты от слежки

Возможно, ты уже пользовался дистрибутивом Tails или даже запускаешь его ежедневно. Но это…