Youtubezilla.ru

Мастер бытовой техники
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Уязвимость ВКонтакте: отправляем сообщение с кодом восстановления страницы на чужой номер

Уязвимость ВКонтакте: отправляем сообщение с кодом восстановления страницы на чужой номер

Обычным весенним днем, занимаясь «подготовкой» к ЕГЭ по информатике, наткнулся на статью об уязвимости Facebook, позволявшей взломать все аккаунты в социальной сети, за которую выплатили 15000$. Суть уязвимости заключалась в переборе кодов восстановления на тестовом домене компании. Я подумал, а чем собственно ВКонтакте хуже? И решил попробовать провернуть подобный трюк у них. Зная, что веб-версия уже достаточно хорошо исследована, жертвой должен был стать Android клиент, а что из этого вышло можно прочитать под катом.

Смотрим трафик

Первым делом я захотел узнать, какую информацию приложение передает в сеть во время процесса восстановления страницы. Помощником в этом деле выступил Fiddler, я настроил его и Android устройство, как написано в официальной документации. Таким образом в Fiddler становятся доступны все HTTP/HTTPS запросы c устройства. Теперь, в приложении, смело выходим из аккаунта ВКонтакте и нажимаем на кнопку «Забыли пароль?». После ввода номера телефона приложение отправляет 2 HTTPS запроса. Особую ценность представляет второй, потому что именно он отвечает за отправку SMS с кодом восстановления.

Особое внимание стоит обратить на некоторые параметры запроса:

Попытка отправить запрос изменив его не увенчалась успехом. Мешает параметр «signature», который выступает в роли «подписи», как она генерируется разберемся немного позже.

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

Честно говоря на этом моменте мне хотелось начать перебирать коды восстановления, меняя значение параметра «code». К сожалению, и этот запрос защищен от изменения с помощью «signature». Придётся разобраться, как генерируется эта подпись.

Реверс инжиниринг: декомпиляция

Для первоначального анализа можно попробовать декомпилировать приложение ВКонтакте. Так можно получить некоторые части исходного кода на Java.

Открываем в jd-gui все полученные .jar файлы. И не долго думая, делаем поиск по строке «signature».

Библиотека libverify за авторством Mail.Ru явно выпадает из общего списка найденного. Смотрим и не ошибаемся, формируемая строка очень похожа на url из предыдущих запросов.

Читайте так же:
14 крутых приложений для создания мемов

Эта библиотека сделана в лучших традициях security through obscurity, весь код надежно обфусцирован. Поэтому, через jd-gui мне удалось узнать только то, что за «signature» прячется MD5-хэш от неизвестной строки.

Реверс инжиниринг: дизассемблирование

Мне требовалось узнать, что за строка поступает в функцию ru.mail.libverify.utils.m.b(). Самый простой способ сделать это — немного изменить код приложения. Ну что ж попробуем. Для начала используем apktool, с командой:

Теперь, в папках с smali-кодом находим файл в котором происходит генерация MD5. В моем случае путь был такой: smali_classes3rumaillibverifyutilsm.smali. Переходим к нужному методу:

Строка, которую требовалось узнать передавалась в функцию в первом параметр-регистре (p0). Поэтому, чтобы получить ее, следует куда-нибудь вывести параметр, например, в Logcat. Добавляем в код несколько строк:

После сохранения изменений собираем приложение с помощью apktool:

Теперь нужно подписать apk, я использовалAPK Signer.

После этого, предварительно удалив оригинальное приложение, можно установить и запустить наш измененный клиент ВКонтакте. Для получения logcat с устройства воспользуемся Android Debug Bridge. Подключаем Android-устройство по USB и последовательно выполняем команды:

Как только присоединились к устройству и получили возможность смотреть логи, снова нажимаем на «Забыли пароль?» и вводим номер телефона. В окне adb появляется запись:

Становится понятно, что хэшируемая строка состоит из последовательно склеенных: части url, параметров запроса и еще одной строки-хэша (506e786f377863526a7558536c644968). И теперь, зная алгоритм генерации «signature» можем начать отправлять свои «подписанные» запросы.

Исследование

Для исследования я написал простую программу на C#, которая отправляла запрос на отправку SMS и делала попытки ввода кода. Воспользовавшись ей, я вводил случайные коды восстановления. Но ожидаемо уперся в лимит попыток:

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

Решил отправлять запросы с разными session_id, приходили смс с другими кодами восстановления, но я все еще упирался в лимит, теперь уже не в «ATTEMPTLIMIT», а в «RATELIMIT».

Читайте так же:
Отключение надписи «Страница 1» в Microsoft Excel

6500 возможных вариантов кодов. Я подумал, что вполне возможно за 5 попыток угадать код, так например делали в Facebook. Но потом все же отложил эту затею.

Я пытался обойти лимиты всеми возможными способами. Менял IP-адреса, параметры запроса, номера телефонов, но сделать больше 5 попыток ввода кода у меня не получалось.

И тут, почти случайно, я решил отправить код восстановления на два разных номера, но используя один и тот же session_id. Моему удивлению не было придела, когда я увидел одинаковую SMS на обоих телефонах. Вот как это работало:

Из-за прокси нужна дополнительная проверка.

Таким образом получалась атака:

  1. Отправляем запрос на отправку SMS абоненту A с session_id C, ему приходит код 1234
  2. Отправляем запрос на отправку SMS абоненту B с session_id C, ему приходит код 1234
  3. Теперь, если абонент A знает номер телефона абонента B, он может восстановить его страницу. Восстанавливать можно было только ту страницу, на номер которой пришла последняя SMS с сходным session_id.

Вывод

Сразу после обнаружения уязвимости я написал репорт на HackerOne. Уже через 17 часов уязвимость была устранена. Спустя несколько дней мне выплатили 2000$. Данная уязвимость позволяла взломать большинство аккаунтов в социальной сети, в безопасности были только аккаунты с двухфакторной авторизацией (у них нельзя делать восстановление по номеру телефона). Репорт.

P.S. ЕГЭ по информатике сдал на 97 баллов. К сожалению, остальные предметы не так успешно.

UPD: Библиотека libverify так же использовалась в ICQ, следовательно уязвимость существовала и там. В программе bug-bounty ICQ мне была сделана доплата в размере 1000$.Репорт.

Как сменить номер телефона в контакте

Вконтакте продолжает дополнять свой интерфейс новыми полезными функциями, и с сегодняшнего дня Вы можете сменить номер мобильного телефона к которому привязан ваш аккаунт вконтакте, очень полезная функция для тех, кто забыл свой номер старый номер телефона к которому был привязан аккаунт. Если Вы хотите изменить номер телефона в контакте Вам нужно зайти в “Мои настройки”.

Далее найти: Изменить номер телефона

В форму новый номер введите номер своего мобильного телефона.

Читайте так же:
Открытие файлов в формате VHD

После того как Вы ввели свой новый номер телефона, и нажали кнопку изменить номер телефона откроется следующая форма:

Так как Вы не знаете свой предыдущий номер телефона нажимаем на ссылку “здесь”.

Вы перейдете по этой ссылке в следующую форму:

Все, теперь Вам нужно ввести полученный код.

В случае, если смс не доходит более 15 минут, попробуйте запросить код повторно.

В течении следующих 14 дней на Вашей страничке в контакте будет выводится предупреждение о предстоящей смене номера. По истечению этого срока номер будет изменен.

Как заменить аватарку для группы

Если вы администрируете какую-то группу в ВК, то вы всегда можете менять ее обложку, используя инструменты и алгоритмы, аналогичные предыдущим. И если вам доводится делать это впервые, то тогда стоит взять на вооружение следующую пошаговую инструкцию:

  1. Зайдите в профиль группы, оставаясь на главной странице.
  2. Кликните по аватарке, расположенной в кружке сразу под обложкой. Фотография в группе в ВК
  3. Выберите любую из двух предложенных опций: обновить фото или изменить миниатюру, под которой и подразумевается этот самый кружочек.
  4. Кликните по виртуальной команде «Выбрать файл», после чего вам будет предложено загрузить фото в формате JPG, PNG, GIF и пр. При этом допускается использование любого размера аватарки, поскольку на этот счет нет никаких указаний и ограничений. Выбрать файл при замене фото в ВК
  5. Выбрав нужное фото в галерее устройства, обозначьте область его изображения. Для этого вы можете оставить полный размер или сдвинуть рамки, получив конечный результат, который и будет отображаться. При этом, если кликнуть по фото, оно откроется в полном размере вне зависимости от того, какая область ограничений была выбрана вами изначально. Если же вас это не устраивает, можно будет обрезать фото с помощью инструментов встроенного редактора ВК.
  6. После нажатия «Сохранить и продолжить» вам будет предложено изменить область миниатюры. На этот раз вы не сможете сдвигать рамки, делая меньше само фото – только больше. Кроме того, вы сможете двигать его в круге, делая это до тех пор, пока не удастся выставить желаемую экспозицию. Выделение области фото
Читайте так же:
Как сделать содержание в OpenOffice Writer

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

Вырезание фотографии ВК

При помощи банкомата банка

Для изменения телефонного номера этим путём следует найти ближайший банкомат ПАО «Сбербанка».

Процесс выглядит следующим образом:

  1. Вставляем карту в банкомат банка, после чего вводим ПИН-код.
  2. Выбираем вкладку «Мобильный банк».
  3. Нажимаем на пункт «Прекратить обслуживание» и подтверждаем действие СМС-кодом.
  4. Возвращаемся в главное меню банкомата и снова выбираем вкладку сервиса.
  5. Нажимаем на пункт «Подключить мобильный банк» и вводим актуальный номер телефона.
  6. Подтверждаем действие СМС–кодом.

ВНИМАНИЕ! В некоторых ситуациях сотрудником контактного центра банка совершается проверочный звонок на действующий или старый абонентский номер для уточнения деталей операции. Это необходимо, чтобы подтвердить факт изменения привязки самим владельцем карты.

Что делать, если заявку на изменение отклонили?

Если вы попытались изменить фамилию, но вашу заявку отклонили, то не думайте даже отправлять её повторно. Результат будет аналогичным, однако вы можете привлечь внимание администрации к собственной странице, из-за чего её в итоге временно заморозят. А вам ведь этого не надо? Рекомендуем поступить более разумно, отправив запрос в техническую поддержку. Для наглядности предлагаем ознакомиться с инструкцией:

  1. С компьютера переходим на официальный сайт социальной сети и выполняем авторизацию в собственном профиле.
  2. Нажимаем по названию аккаунта в верхней панели, а после в выпадающем меню выбираем «Помощь».
  3. В поисковую строку с часто задаваемыми вопросами вводим запрос «Имя», а затем нажимаем по результату «Как изменить имя и фамилию?».
  4. Находим кнопку «Решить проблему с именем» и кликаем по ней. Она, кстати, расположена в самой нижней части страницы, так что не заметить ее будет трудно.
  5. В двух словах характеризуем сложившуюся проблему, а чуть ниже более подробно описываем её. Можете написать, что вы хотите установить реальную фамилию, а для подтверждения этого прилагаете изображение паспорта. Да, в этом случае придется сделать фотографию документа, удостоверяющего личность. Рекомендуем на снимке замазать серию и номер.
  6. После чего нажимаем на кнопку «Отправить» и ждем ответа от технических специалистов.
Читайте так же:
Загрузка прервана в Яндекс браузер — что делать

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

В действительности, такая возможность попросту не предусмотрена в стороннем клиенте ВК. К сожалению, это еще одно его ограничение. Поэтому выполнять данную процедуру можно или с мобильной версии официального сайта, или через стандартное приложение. Мы разберем обе процедуры.

Способ №1: Браузер

Предлагаем вам пошаговую инструкцию:

  1. В любом интернет-обозревателе откройте страницу https://m.vk.com/.
  2. Затем войдите в свою учетную запись, если еще этого не сделали.

Авторизация в учетной записи на мобильной версии сайта ВКонтакте

Переход в настройки профиля на мобильной версии сайта ВКонтакте

Пункт Номер телефона в настройках аккаунта на мобильной версии сайта ВКонтакте

Способ №2: Официальное приложение

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

  1. Откройте раздел, где содержится информация о вашем профиле (иконка в виде трех горизонтальных полос в нижней части экрана).
  2. Потом перейдите на страницу настроек (значок «шестеренки»).

Резюме

Зарегистрироваться ВКонтакте можно, даже не имея под рукой доступного мобильника. Конечно, всегда можно попробовать сделать это через Фейсбук или виртуальный номер. Для создания многочисленных фейков пригодится домашний телефон. Но не стоит забывать, что за спам и нарушение правил Сообщества ВКонтакте банят, вплоть до того, что регистрация на ваш номер будет недоступна.

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

Тем более, использование настоящего номера телефона значительно увеличивает уровень безопасности. Например, двухфакторная аутентификация защитит от хакеров. Да и в целом, восстановить «краденный» профиль будет намного проще. Особенно, если пароль сменили не вы. Эта мера предосторожности защитит от кражи личных данных и рассылок от вашего лица.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector