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

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


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



Особое внимание стоит обратить на некоторые параметры запроса:
phone — номер на который отправляется SMS
session_id — рандомно генерирующаяся сессия операции восстановления
Попытка отправить запрос изменив его не увенчалась успехом. Мешает параметр «signature», который выступает в роли «подписи», как она генерируется разберемся немного позже.

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



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

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


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

Как это сделать
1. Загрузить и распаковать dex2jar и jd-gui
2. Открыть apk приложения, как обычный архив, и «перетащить» .dex файлы на d2j-dex2jar.bat

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



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

localObject3 = String.format(Locale.US, "%s%s?%s&signature=%s", new Object[] { d(), e(), localObject3, URLEncoder.encode(ru.mail.libverify.utils.m.b(f() + (String)localObject4 + ru.mail.libverify.utils.m.c(a.b())), "UTF-8") });

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



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


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

apktool.jar d vk.apk -r
(ключ -r для игнорирования ресурсов)

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

...
.method public static b(Ljava/lang/String;)Ljava/lang/String;
    .locals 8
    .param p0    # Ljava/lang/String;
        .annotation build Landroid/support/annotation/NonNull;
        .end annotation
    .end param

    :try_start_0
    const-string/jumbo v0, "UTF-8"

    invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
    :try_end_0
    .catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_2

    move-result-object v0

    :try_start_1
    const-string/jumbo v1, "MD5"

    invoke-static {v1}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;

    move-result-object v1

    invoke-virtual {v1}, Ljava/security/MessageDigest;->reset()V

    invoke-virtual {v1, v0}, Ljava/security/MessageDigest;->update([B)V

    invoke-virtual {v1}, Ljava/security/MessageDigest;->digest()[B

    move-result-object v0
    ...

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

...
.method public static b(Ljava/lang/String;)Ljava/lang/String;
    .locals 8
    .param p0    # Ljava/lang/String;
        .annotation build Landroid/support/annotation/NonNull;
        .end annotation
    .end param

    # PATCH
    # String v0 = "vk-research";
    const-string/jumbo v0, "vk-research"
    # Log.d(v0, p0), где p0 параметр метода
    invoke-static {v0, p0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    :try_start_0
    const-string/jumbo v0, "UTF-8"
    ...

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

apktool.jar b vk -o newvk.apk

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

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

adb devices
adb logcat

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



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

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


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



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



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



Про bruteforce
Наблюдая за приходящими SMS я заметил некоторую общую особенность кодов. Код восстановления состоял из 4 цифр (на момент написание статьи увеличили да 6) и одинаковые цифры не находились рядом. То есть всего ~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$.Репорт.
Поделиться с друзьями
-->

Комментарии (144)


  1. firk
    09.07.2017 13:17
    +1

    Данная уязвимость позволяла взломать большинство аккаунтов в социальной сети, в безопасности были только аккаунты с двухфакторной авторизацией (у них нельзя делать восстановление по номеру телефона).

    Ну, на самом деле не только они — взятую наугад случайную незнакомую страницу вы так скорее всего не взломаете. Но уязвимость очень серьёзная, что-то маленькая выплата за неё.


    1. norver
      09.07.2017 13:31
      +6

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


  1. powerman
    09.07.2017 13:22

    Эта библиотека сделана в лучших традициях security through obscurity, весь код надежно обфусцирован.

    OMG… кто-то ещё такое использует в наши дни. Чего ради??? Чтобы потом это сломал школьник и VK с Mail.ru стало стыдно?


    1. AllexIn
      09.07.2017 13:32
      +20

      Вы так говорите «школьник», как будто школьники — идиоты.


      1. powerman
        09.07.2017 14:47
        +13

        С чего Вы это взяли?


        Я говорю "школьник" потому, что судя по упоминанию ЕГЭ в статье это сделал именно школьник. И какими бы умными не были школьники, квалификация людей профессионально занимающихся безопасностью обычно намного выше. Так что мой вопрос вполне уместен — если эта "защита" не в состоянии сдержать школьника, то хакера она тем более не сдержит — и зачем она тогда нужна вообще? Все остальные и так не будут пытаться подделывать HTTP-запросы.


        Проблема в том, что от такой реализации "безопасности" больше вреда, чем пользы: на самом деле она ни от чего не защищает, но создаёт у разработчиков ложное чувство безопасности — якобы параметрам запроса можно доверять, раз они корректно подписаны. А доверять им, разумеется, нельзя, и код будет намного безопаснее, если об этом никто из разработчиков не будет забывать ни на секунду.


        1. AllexIn
          09.07.2017 15:07
          +3

          Школьник вполне может быть квалифицированным специалистом. Хакером.
          Это в начальных классах еще дети, в старших — вполне уже личности и специалисты.


          1. powerman
            09.07.2017 17:22
            +1

            Может, конечно. Я сам таким был. Но суть вопроса ведь не в этом. Всё описанное в статье по сложности реализации доступно и понятно начинающим разработчикам под андроид. Добавляем к этому желание взломать и хакерский склад ума — и всё, "защита" моментально обходится. Если начинающий разработчик может обойти эту защиту — зачем её вообще делали? Против кого, собственно? Где целевая аудитория хакеров, которые хотят это сломать, но не смогут этого сделать из-за недостатка квалификации/времени/средств? Кто и для чего придумывает глупости вроде этой "подписи" параметров HTTP, выполняемой кодом на клиенте, который контролирует хакер? Я бы ещё понял, если бы они этот код вынесли в C-шную библиотеку набитую антиотладочными приёмами — тоже не сильно поможет, но было бы видно, что они хотя бы пытались поднять планку требуемой квалификации для взлома. А в текущем виде это просто профанация.


            1. x67
              10.07.2017 02:09

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


          1. NLO
            09.07.2017 18:05

            НЛО прилетело и опубликовало эту надпись здесь


            1. AllexIn
              09.07.2017 18:06
              +3

              Вы либо не понимаете термин скрипт-кидди, либо намеренно принижаете заслуги парня.


              1. NLO
                09.07.2017 18:19

                НЛО прилетело и опубликовало эту надпись здесь


                1. AllexIn
                  09.07.2017 18:31
                  +3

                  ТС очевидно не искал систему с конкретной уязвимостью, чтобы её «по шаблону взломать»(он не перебирал сервисы в поисказ уязвимости, а взял один конкретный для проверки).
                  Даже отсылка к Facebook не будет актуальной, потому что там совсем другая уязвимость и он её в ВК не нашел. Он нашел в ВК совсем другую уязвимость, уникальную, которую сам и разобрал. ПРи этом четко понимания что и зачем делает.

                  Где тут хоть один пункт совпадения с той огромной цитатой, что вы привели?


                  1. NLO
                    09.07.2017 18:54

                    НЛО прилетело и опубликовало эту надпись здесь


                    1. AllexIn
                      09.07.2017 20:06
                      +2

                      Перебор — признак скрипт-кидди. Потому что не видит возможностей, а тупо перепибарает варианты, как раз.
                      Здесь перебора нет. Попробовал одну уязвимость, в процессе увидел другую.


                      1. NLO
                        09.07.2017 20:34

                        НЛО прилетело и опубликовало эту надпись здесь


                        1. AllexIn
                          09.07.2017 20:36
                          +4

                          Открою секрет: между Pro и script-kiddie есть градации.


                          1. NLO
                            09.07.2017 20:48

                            НЛО прилетело и опубликовало эту надпись здесь


                            1. AllexIn
                              09.07.2017 20:50
                              +6

                              Верно, фарс — прекрасное определение для высказываний вида «профессионал в отличии от скрипт кидди — тупо перебирает уязвимости»
                              Удачи!


                              1. NLO
                                11.07.2017 21:23

                                НЛО прилетело и опубликовало эту надпись здесь


                                1. AllexIn
                                  11.07.2017 21:26
                                  +1

                                  Как почту ломанете — приходите.
                                  А собрать открытую информацию — много ума не надо. Это никак не показывает ваш уровень навыков. ;)
                                  Тем более ладно бы ломали человека, который пытаеться анонимность изображать. Я не изображаю и никогда о себе ничего не скрывал, о мой бог, как много вы обо мне знаете. :))))

                                  UPD: Ну или хотя бы сайт, который висит на деромохостинге и весь дырявый, даже https нет. лол. Справитесь?


                                  1. NLO
                                    11.07.2017 22:34

                                    НЛО прилетело и опубликовало эту надпись здесь


                                    1. AllexIn
                                      11.07.2017 22:39

                                      Вот только проблема в том, что вы откопали древний сайт, который не обновляет сколько… Не знаю точно, лет 5 думаю как минимум. А скорее всего даже и больше. Лол.

                                      Запустить вашу демку я конечно соглашусь. Поэтому у меня песочницы под qemu. Винда с UE не имеет доступа ни к каким из моих аккаунтов. Ну так уж повелось, что не верю я винде с тех пор как десятка вышла. ;)

                                      Подсудного дела нет. Я вам официально разрешаю сломать сайт. Как я уже сказал — это персональная страничка давно протухшая. Велкам.
                                      Её дефейс будет для всех здесь прекрасным доказательством вашей правоты. Вы же здесь для этого? Обосновать свою позицию. Вот и попробуйте.


                                      1. NLO
                                        12.07.2017 00:45

                                        НЛО прилетело и опубликовало эту надпись здесь


                                        1. AllexIn
                                          12.07.2017 09:08

                                          Мне не 13 чтобы кому то что то доказывать.

                                          Ну вы ж не поленились потратить некоторое время чтобы в гугле посмотреть результаты по запросу с моей почтой? :)
                                          Это уже говорит о том, что доказывать вам есть что. Не противореьте сами себе, этож палево.

                                          Мне и не нужны ваши аккаунты, я бы просто зашифровал вам диск.

                                          Это бы вам ничего не дало, во первых хрен бы вы чего зашифровали. :)
                                          Во вторых — у меня быкапы на защищенном от постороннего доступа сервере. :))

                                          Судя по вашей безалаберности в сети.

                                          Слушайте, ну воспользуйтесь хоть одним пунктом по безалаберности в сети? По вашему я дырявый идиот, ломаться должен за меньшее время, чем «граф на 2000 вершин» составлять. ;)

                                          Вы вообще не следите за безопасностью в своей системе.

                                          Бла-бла-бла

                                          Хорошо что хоть аккаунт в avast есть.

                                          Не, я не пользуюсь антивирусами. Лет уже так 10.

                                          Вот сайт который я делал четыре года назад.
                                          Можете смело делать что предлагали мне Велкам!

                                          Я разработчик игр, что вы мне предлагаете. :))

                                          Хотя боюсь вас посадят, несмотря на Велкам.

                                          Значит вы все таки боитесь, что я на вас настучу.
                                          Давайте я вам официальную бумажку с подписью и печатью дам, где разрешаю меня сломать? Естественно без причинения ущерба.


                                          1. AllexIn
                                            12.07.2017 09:25

                                            Отдельно весьма показатель, что не вы нашли второй сервер. Причем его данные тоже в свободном доступе и лежат на виду. Вы даж открытую инфу халтурно смотрели. :(


                                            1. NLO
                                              12.07.2017 12:31

                                              НЛО прилетело и опубликовало эту надпись здесь


                                              1. AllexIn
                                                12.07.2017 12:37

                                                О господи, конечно я не знаю инструментов для взлома веба. :)
                                                Я вообще вебом никогда не занимался.
                                                И информационной безопасностью тоже.
                                                Хакерство(открою секрет), бывает не только в вебе. ;) Конкретно в моём случае — это локализация и реверс игровых архивов.
                                                Чтож, оценка за ваш анализ — двоечка.


                                                1. NLO
                                                  12.07.2017 13:37

                                                  НЛО прилетело и опубликовало эту надпись здесь


                                                1. devalone
                                                  12.07.2017 15:51
                                                  +1

                                                  Что происходит? Почему ты говоришь сам с собой?


                                                  1. AllexIn
                                                    12.07.2017 16:05

                                                    Занятно, не ожидал что его «я щас администрации нажалуюсь, чтобы они удалили мои сообщения, где я так позорно сливаюсь» реально сработает.


            1. devalone
              10.07.2017 23:04
              +1

              Завидуешь, что он получил 3 килобакса?


              1. NLO
                11.07.2017 00:33

                НЛО прилетело и опубликовало эту надпись здесь


                1. devalone
                  11.07.2017 03:04
                  +1

                  Откуда мне знать, насколько они для тебя ощутимы


                  1. NLO
                    12.07.2017 01:54

                    НЛО прилетело и опубликовало эту надпись здесь


                  1. devalone
                    12.07.2017 23:49

                    Это НЛО такое странное… Почему оно удалило этот комментарий, который написал пользователь ниже?

                    Тогда зачем интересуешься?

                    Хотя видимо ты ждешь ответа с числами, ок.
                    Моя зарплата 3200$ в месяц.
                    Мне придется работать почти весь месяц по 5 дней в неделю по 8 часов.
                    Но все равно не настолько чтобы кому то завидовать.

                    Я рад что у нас есть такие таланты, побольше бы таких.

                    Серьёзно, что он написал такого, матов не было, чего-то запрещённого законом РФ тоже…
                    И да, отвечу тому парню: я вообще-то даже не спрашивал, какая у тебя зарплата…


                    1. AllexIn
                      13.07.2017 09:28

                      НЛО удалило сообщения не за нарушение. А по просьбе самого автора всех этих сообщений.


                      1. devalone
                        13.07.2017 14:17

                        0_о А что так можно было?


                        1. AllexIn
                          13.07.2017 14:33

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

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

                          Кстати, вся переписку у меня сохранена.
                          Как думаете, куда выложить?
                          Очевидно вне юрисдикции РФ, чтобы комрад опять свой позор не потребовал удалять.


                          1. Wedmer
                            13.07.2017 20:13

                            Вам место предоставить?


                            1. AllexIn
                              13.07.2017 20:37

                              Тут вопрос юридический. Надо же место за пределами РФ и не подконтрольное резиденту РФ.
                              Там так-то ничего особо интересного. Скорее внутренний протест требует выложить, наперекор желанию этого товарища.


                              1. Wedmer
                                13.07.2017 20:42

                                Канада или Франция подойдут?


                          1. devalone
                            14.07.2017 00:50

                            Кстати, вся переписку у меня сохранена.

                            И не только у вас :)

                            https://sohabr.net/habr/post/332684/#comment_10306258

                            https://web.archive.org/web/20170712063507/https://habrahabr.ru/post/332684/#comment_10306258


        1. firk
          09.07.2017 17:48

          Лучше посмотреть на это с другой стороны:
          1) уменьшения безопасности конкретно вся эта обфускация и "подписывание" запросов не создаёт
          2) разумные разработчики понимают, что всё, что сформировано на клиенте, не является доверенным и подлежит проверке — поэтому их это не запутает
          3) небольшой препон к реверсу библиотеки и протокола это создаст
          итого — вреда нет, польза, пусть и маленькая, есть, почему бы не сделать, раз есть такая возможность, причём почти бесплатная?


          1. powerman
            09.07.2017 21:41
            +2

            К сожалению, разумные разработчики не настолько разумные, как нам бы хотелось. И психология этих разумных разработчиков не отличается от других людей. И работают они каждый над своим участком кода, зачастую не имея ни времени ни желания вникать в то, как что-то устроено на другой стороне или в следующем слое абстракции. Так что когда они видят не просто обычный набор параметров, а подписанный набор параметров — они обычно считают, что раз подпись есть, то она должна что-то да значить, в частности что параметрам можно верить (ведь зачем-то такую необычную подпись кто-то добавил… а разработчики, как известно, разумные, так что добавлять совершенно бессмысленную подпись они бы не стали :)). Да и просто подсознательно подписанным данным доверия всегда больше. Так что проверять подписанные параметры разработчики если и будут вообще, то совсем не так тщательно, как обычно.


            Итого — вред есть, и значительный. Начиная с затрат времени на разработку и поддержку бессмысленного функционала, и заканчивая ослаблением безопасности из-за психологического фактора. А самое плохое то, что такой бессмысленный функционал часто со временем попадает в категорию "магическая хреновина, никто не знает зачем она нужна, но её нужно обязательно поддерживать в рабочем состоянии иначе неизвестно что может поломаться".


      1. Antelle
        09.07.2017 17:55

        Школьники — нет, а вот...


      1. alek0585
        16.07.2017 00:34

        А вот и кулхацкеры подъехали.


    1. norver
      09.07.2017 13:37

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


    1. Zibx
      09.07.2017 17:14
      +1

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


      1. musimba
        15.07.2017 21:30

        Компилятор же не убирает реальные имена методов при компиляции. Даже при релиз сброке. Иначе как тогда reflection будет работать.


  1. norver
    09.07.2017 13:30

    Сорри, не туда.


  1. LionZXY
    09.07.2017 13:47
    +2

    Куда поступать планируешь?)


    1. norver
      09.07.2017 17:40
      +3

      Собираюсь использовать принцип «куда возьмут». Все же профильную математику я хорошо завалил и получил всего 60 баллов. Поэтому, скорее всего, Лэти, СПБГУТ, Военмех, Горный.


      1. ru_vlad
        09.07.2017 18:18

        Не понял, а 97 баллов за что, за "базу"?
        Общая сумма с учетом Информатики какая?
        На счет вуза сильно не переживай, если захочешь учится то везде сможешь стать спецом.
        Кроме вузов есть еще и Академия современного программирования, она тоже не плохо поможет.


        1. norver
          09.07.2017 19:32

          Да я особо не волнуюсь. 97 баллов за ЕГЭ по информатике, это уже тестовые баллы.


      1. Nakosika
        09.07.2017 21:26
        -23

        Не теряй лучшие годы своей жизни слушая пердунов которым на тебя накласть. За пять лет можно и нужно запустить стартап, стать оверквалифаед, свалить на доллары или хотя бы евро, взять ипотеку и Теслу. Может меня и заминусят, но я ни разу не пожалел что свалил с первого курса. Потом ко мне приходили выпустившиеся одногруппники, а я не мог их взять потому что они, потратив на "образование" пять лет, знали меньше школьника с одним годом реального опыта. И знали меньше как практики так и теории, т к теория без практики это просто хлам, а занимаясь практикой теорию усваиваешь на порядок быстрее.


        1. AllexIn
          09.07.2017 21:57
          +19

          А я вот жалею что свалил с 1 курса.
          Стартап за 10 лет так и не смог построить, потому что разрпаботчик, а не бизнесмен, а карьеру строить и трактор снаряжать — отсутствие образования мешает.


          1. devalone
            10.07.2017 23:09
            -1

            а карьеру строить и трактор снаряжать

            Чтоб трактор заводить, образование не обязательно, желательно, но не обязательно, по крайней мере не во всех странах.


        1. 0xd34df00d
          09.07.2017 22:11
          +11

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


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


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


          А, ну и хороший не заборостроительный — это ещё и социальные связи, что полезно.


        1. immaculate
          09.07.2017 22:16
          +5

          Теоретически все оно так, но, например, не все могут запустить стартап. А при приеме на работу и во многих других ситуациях прежде всего смотрят на бумажку. Ну, так устроены люди. Им обязательно нужна какая-то простая метрика, по которой можно сравнивать кандидатов и людей вообще. Особенно умиляют кадры, которые хвастаются 2-3 образованиями. А с первого раза не дошло что-ли?


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


          1. Nakosika
            10.07.2017 09:39
            -7

            Пять лет опыта при приеме нормальную компанию дают больше шансов чем корочка. Сегодняшние воротилы начиная с Билла Гейтса — почти все забили на учебу. Вылетел из универа -> добился успеха, это на столько частая формула наблюдаемая на практике, что я даже и не знаю как нужно смотреть на мир чтобы ее не заметить, особенно в ИТ. В общем конечно каждому самому решать и все такое. Но те кто закончил за редким исключением будут говорить или учиться, потому что не признавать же себя неудачниками слившими молодость. Она один раз бывает, а жизнь и так коротка.


            1. immaculate
              10.07.2017 09:50
              +5

              Мне кажется, что это все же слишком сильное упрощение. Я хочу обратить внимание, что у диплома есть очень весомые преимущества. В частности, мобильность. Как писал в изначальном комментарии, переехать в другую страну без диплома — чрезвычайно сложная задача. Может быть, оно и не надо. Но если вдруг приспичит, то придется локти кусать и преодолевать весьма серьезные препоны. Тогда как с дипломом (если не врач, конечно), задача становится элементарной для многих стран.


              Есть преимущества и недостатки и у того и у другого. Кроме того, учиться — это не равноценно прожиганию времени. Можно и знания получить, и связи, и полноценно жить в это время.


              1. Nakosika
                10.07.2017 14:21
                +1

                Ну, я работаю за границей без диплома. Меня вообще ни разу не спросили про какие-то бумажки. На поиск работы это ни как не сказывается, если только не пытаться в какой-нить Газпром устроиться. Рядом со мной работают ребята из мгу, зря время потеряли. Наши вузы за границей не котируются от слова совсем. :) и связи, полученные в России, тоже никому не нужны, как мне тут подсказал один копетан. Имеет значение знания предметной области, профиль на гитхабе и адекватность во время интервью. Все. Как говорил Рик, «умному человеку делать в школе нечего».


            1. Frankenstine
              10.07.2017 10:11
              +15

              Вылетел из универа -> добился успеха, это на столько частая формула наблюдаемая на практике, что я даже и не знаю как нужно смотреть на мир чтобы ее не заметить, особенно в ИТ.

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


              1. Nakosika
                10.07.2017 17:32

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


            1. den_golub
              10.07.2017 11:04
              +3

              Да только вылетали и уходили они из Гарворда и и еще чего-то там, но никак не из какого-нибудь захудалого института, да и всегда надо иметь парашют на всякий, вот не выгорит стартап или вообще не запустится и что дальше? Либо на завод, либо учится, да и не что не мешает при нормальных мозгах, учится и развивать какой-нибудь стартап.


            1. saboteur_kiev
              10.07.2017 14:28
              +1

              «Сегодняшние воротилы начиная с Билла Гейтса — почти все забили на учебу. Вылетел из универа -> добился успеха,»

              Единственное что, подобные воротилы — сперва добились успеха, а потом уже частично забили на учебу из-за недостатка времени. Причем подавляющее большинство из них угрохали все свое «незамутненное детство» на то, чтобы освоить какие-то технологии (а не на дотку и танчики) причем на таком уровне, что уже учась в универе смогли создать бизнес, дающим им бОльшие перспективы, чем корочка.

              Опять же, сравните требования к разработчику в 90-е и сейчас — в последнее время я все чаще и чаще даже на простых проектах наблюдаю необходимость в вузовской математике.


              1. Nakosika
                10.07.2017 17:26
                -3

                За 20 лет ни разу не было необходимости что-то сложнее второго класса использовать. Вы точно программистом работаете а не математиком?


                1. saboteur_kiev
                  10.07.2017 17:36
                  +1

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

                  1) разрабатывали систему активного шумоподавления для телевизоров. Я вообще не врубался о чем говорили товарищи про матрицы, частоты, волны, разбор это все по фурье и так далее.
                  2) Вы проходили во втором классе сложность алгоритмов? Можете сходу сказать сложность алгоритма обычной пузырьковой сортировки, и объяснить ее второкласснику?
                  3) Битовые операции, and/or/xor/not, и циклические сдвиги — это в принципе можно попробовать пояснить. Но вот когда начинаешь использовать это на практике для работы с графикой (банального отрисовывания спрайтов поверх других спрайтов) — мне школьного образования и интуитивного понимания не хватило, пришлось почитывать отдельно.
                  4) Принципы работы ssh-ключей на достаточном уровне, чтобы вообще понимать как оно работает? Как и почему работает https, что именно содержится в ключах и сертификатах?

                  Это только за минуту накидал из личной практики.

                  P.S. А я ведь даже не программист, а девопс. Просто приходится немного bash/java/c++/python/php/js ковырять на базовом уровне.


                  1. Nakosika
                    10.07.2017 19:03

                    Какое отношение все это имеет к математике? Кроме матриц, для работы с которыми все библиотеки давно написаны математиками? Mathematicians do math, engineers use math.


                1. flatscode
                  10.07.2017 17:41
                  +2

                  За 20 лет ни разу не было необходимости что-то сложнее второго класса использовать

                  Не знаю, как можно работать со всякими OpenGL и при этом не знать аналитическую геометрию.


                  1. Nakosika
                    10.07.2017 19:10
                    -4

                    OpenGL со всей геометрией выражается при помощи системы уравнений. Синусы хоть и проходят в седьмом классе, это просто соотношение сторон, что есть второй класс. Помню даже статью писал пятнадцать лет назад в духе «скелетная анимация это просто».


                    1. flatscode
                      10.07.2017 19:36
                      +2

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

                      Мне кажется, что вы — гений (непризнанный)


                      1. AllexIn
                        10.07.2017 19:40

                        Почему не признаный? Если верить словам господина(а других источников у нас нет) — он очень ценный и успешный сотрудник.


                      1. Nakosika
                        10.07.2017 20:57

                        Просто наткнулся тогда на исходники анрил торнамента, все кредитсы — Тиму Свини. А вот исходники квейка я так и ниасилил, слишком сложно оказалось, так что не нужно вот этого сарказма.


                1. AllexIn
                  10.07.2017 18:02
                  +4

                  А чем вы занимаетесь?
                  Я вот в геймдеве работаю, математики тоннами. Причем сейчас я работаю с UNreal Engine, казалось бы — там вся математика уже написано. А вот фиг, всё равно приходится много математики использовать.
                  Ок. Не геймдев.

                  Делал платежный терминал… Контрольную сумму чтобы посчитать — надо полиномы знать!
                  Ок. Можно использовать готовую формулу. Формулы для расчета контрольных сумм всегда есть в документации к API.
                  Но:
                  1) Много стоит специалист, который работает с чужим кодом как с черным ящиком? Вот вы говорите, что норм так работается. А вот я таких людей специалистами не считаю.
                  2) Если что-то пойдет не так, не зная как строится таже примитивная контрольная сумма — по логу ошибку понять сложнее.


                  1. Nakosika
                    10.07.2017 19:34
                    -3

                    Да я даже вики не буду открывать чтобы узнать что такое ваши полиномы. И да, я как специалист стою не мало. По зп всегда в топ 10%. И говнокод за мной никому не приходится переписывать, а совсем наоборот. Вот такая она реальность с другой стороны. Потому что важно не знать много, а уметь быстро учиться тому что нужно сейчас для решения конкретной задачи, чему в вузах не учат не смотря на громкие заявления.


                  1. Nakosika
                    10.07.2017 19:41
                    -1

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


                    1. AllexIn
                      10.07.2017 19:44

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


                      1. Nakosika
                        10.07.2017 20:16
                        -2

                        Мой совет может оказаться пригодным тому кому я его давал — т.е. школьнику, сломавшему пентагон.


                    1. devalone
                      10.07.2017 23:21

                      а геймдев, бухгалтерия, системное, бакенд, бд — в прошлом

                      лол
                      Даже комментировать не буду
                      В движках ее усложняют

                      лол x2
                      Никто её намеренно не усложняет, разве что для эффективности.


              1. devalone
                10.07.2017 23:13

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

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


        1. r85qPZ1d3y
          10.07.2017 19:58

          Абсолютно согласен с написанным про лучшие годы. Себя образовывать надо самостоятельно, и с умом, развивая те скиллы, которые тебе интересны, и в которых ты можешь добиться успеха. А те, кто пропагандируют образование по устаревшим учебникам, и учебу у «престарелых пердуров», как уже выразились, вот как раз они и пишут в комментариях, что награда за такой баг очень достойная, и заодно минусуют. На моем комментарии так-же можно в этом убедиться.


        1. devalone
          10.07.2017 23:08

          Не всё так однозначно. Чтоб открыть свой стартап нужны в первую очередь хорошая идея и умение вести бизнес, а уже потом умение программировать. А на счёт ВУЗа, большинство не могут в самообучение, если человек из таких, то ему дорога в ВУЗ, также бывают ситуации, когда нужна корочка, например, для иммиграции, тогда тоже ВУЗ крайне желателен, ну и также для тех, кто ещё не определился, это хороший способ набраться опыта, т.к. свободного времени явно больше, чем на работе.


  1. dmitry_ch
    09.07.2017 14:51
    -13

    Молодец! Хорошая подготовка к ЕГЭ получилась!

    У вас в начале написано, что «выплатили $15000», а в конце «выплатили 2000$». Общественность переживает, куда «утряслись» остальные $13000?


    1. norver
      09.07.2017 15:07
      +10

      В начале статьи я писал про выплату от Facebook за похожую уязвимость.


    1. Semy
      09.07.2017 17:53
      +19

      Общественность читает статью *внимательно*.


  1. LexS007
    09.07.2017 15:32
    +2

    Я в шоке. Серьезно? Сервак без проверок принимает любой номер от клиента и отправляет на него смс с кодом? И это крупнейшая соц. сеть?


    1. firk
      09.07.2017 15:56
      +3

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


    1. norver
      09.07.2017 16:02

      Да, можно отправлять SMS на любой номер, тут ещё повезло, что есть лимиты. Мне кажется, раньше сам ВКонтаке занимался отправкой SMS, но потом этот сервис отдали Mail.Ru. И из-за этого возникла проблема с сессиями.


      1. kirillaristov
        09.07.2017 22:54

        То есть код восстановления на стороне сервера генерировался на основе лишь session_id без добавления самого номера?


        1. norver
          10.07.2017 00:50

          Как именно все это работало знаю только сотрудники Mail.Ru. Могу только утверждать, что на одинаковый session_id, приходило одинаковое SMS. Так же я не помню менялись ли коды в сообщениях со сходными session_id с течением времени.


          1. kirillaristov
            10.07.2017 02:48

            А как теперь стало? Смс на другой номер не приходит вообще или приходит с другим кодом восстановления?


  1. Izaron
    09.07.2017 16:56
    +1

    Действительно круто! Остается только догадываться, сколько мошенники нагрели денег за взломы, из-за того, что кое-где программисты занимаются непонятно чем =)


    1. mihver1
      09.07.2017 17:34
      +12

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


      1. flatscode
        10.07.2017 12:15

        Возможно плохо искали, т.к. встречал несколько случаев угона аккаунта с похожими симптомами (приходили SMS-ки владельцу, потом терялся контроль над аккаунтом). То ли SMS-ки перехватывали, то ли это.


        1. mapatka
          10.07.2017 17:43

          Воооот, такая же ситуация была, угнали акк в VK.
          А 1 Апреля угнали почту на Mail, хотя там стоит двуфакторная авторизация. Пришла СМС о том что сменили пароль и пипец, при чем восстановить по номеру телефона обратно не дало.


  1. NLO
    09.07.2017 19:07

    НЛО прилетело и опубликовало эту надпись здесь


    1. NLO
      09.07.2017 19:25

      НЛО прилетело и опубликовало эту надпись здесь


      1. norver
        09.07.2017 19:29

        Ну во всех приложениях с этой библиотекой существовала уязвимость, разве это не проблема библиотеки?


        1. NLO
          09.07.2017 20:37

          НЛО прилетело и опубликовало эту надпись здесь


    1. norver
      09.07.2017 19:27

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


      1. easty
        09.07.2017 19:54

        Я думаю перемудрили с повторными запросами кода смс. Когда клиент нетерпиливый и запрашивает код повторно, когда первый еще в пути, чтобы код был одинаков и клиент лихорадочно не вводил все подряд)) тут и вкралась ошибка, скорее всего телефон для отправки брали не из базы сервера, а из запроса. Возможно кто-то не закоментил отладочный код))


        1. NLO
          09.07.2017 20:04

          НЛО прилетело и опубликовало эту надпись здесь


          1. AllexIn
            09.07.2017 20:09

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


            1. easty
              09.07.2017 20:12
              +1

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


              1. AllexIn
                09.07.2017 20:17
                +2

                Это понятно. Речь же про идеал. :)
                Мы можем сколько угодно рассуждать о том, какие нубы сидят в ВК.
                Но по факту — все совершают ошибки. По разным причинам.


            1. NLO
              09.07.2017 20:27

              НЛО прилетело и опубликовало эту надпись здесь


          1. easty
            09.07.2017 20:10

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


            1. NLO
              09.07.2017 20:20

              НЛО прилетело и опубликовало эту надпись здесь


              1. NLO
                09.07.2017 20:31

                НЛО прилетело и опубликовало эту надпись здесь


      1. NLO
        09.07.2017 19:59

        НЛО прилетело и опубликовало эту надпись здесь


  1. r85qPZ1d3y
    09.07.2017 20:34
    +3

    norver, размер вознаграждения (2к$) прокомментировать можете? Чем больше, и эмоциональнее, тем лучше.


    1. norver
      10.07.2017 20:38
      +2

      Считаю, что выплата нормальная. Да, это меньше чем за тот же тип уязвимости у Facebook, но лучше чем ничего. Все-таки если очень хочется денег намного выгоднее такие уязвимости вообще не раскрывать. Спокойно ломать страницы «девочек» по заказу «мальчиков» беря при этом 10 тыс. за страницу. Мне кажется, что при такой работе шанс спалить уязвимость стремится к нулю, можно еще и маскироваться под фишинг. Но тут уже этическая сторона вопроса.


  1. lawoge
    09.07.2017 21:55

    Скажите пожалуйста, а каким образом вы считали кол-во возможных вариантов для 4х значного кода без находящихся рядом одинаковых цифр? У вас получилось ~6500
    Что я упускаю?


    10^4 = 10000 - кол-во всех вариантов.
    10^3 = 1000 - кол-во вариантов где одинаковые цифры стоят рядом.
    10000 - 1000 = 9000 - кол-во вариантов где одинаковые цифры не стоят рядом.

    Кол-во вариантов где одинаковые цифры стоят рядом считал таким образом, т.к. в 4х значном коде только 3 места по 2 цифры и кол-во значений на одно место — 10.


    1. norver
      09.07.2017 22:07
      +1

      Могу сказать, что всего возможных 4-х значных кодов точно 9000. Т.к. на первом месте могут находится все цифры кроме 0, а на трех других местах любые цифры, т.е. 9 * 10 * 10 * 10. А количество чисел в которых цифры не стоят рядом я считал вот так:

      count = 9000
      
      for i in range(1000, 10000):
          numstr = str(i)
          for j in range(len(numstr) - 1):
              if numstr[j] == numstr[j + 1]:
                  count -= 1
                  break        
                  
      print(count)
      


      1. lawoge
        09.07.2017 22:11
        +1

        на первом месте могут находится все цифры кроме 0

        аааа.




        Ну в общем перебором)


        Может кто знает как решить данную задачу с помощью комбинаторики?) Стало очень интересно


        1. kroks
          09.07.2017 23:01
          +6

          Для первой цифры нам подходят 9 чисел (1-9)
          Для каждой следующей тоже 9 (все, кроме такой же, как и предыдущая)

          Получаем через комбинаторное перемножение: 9*9*9*9 = 6561


          1. lawoge
            09.07.2017 23:07
            +1

            Спасибо большое!


        1. SilverHorse
          10.07.2017 00:40
          +1

          9^4=6561.

          На первом месте стоит что угодно от 1 до 9, то есть 9 цифр, на втором что угодно, кроме цифры, попавшей на первое, то есть 9 цифр, на третьем — что угодно, кроме цифры, попавшей на второе, то есть… в итоге для кода длиной N имеем 9^N вариантов. Это рассуждение, кстати, очевидно из написанного выше кода цикла.


  1. Akuma
    09.07.2017 23:36

    Хм. А на чьем еще аккаунте вы это тестировали? :)

    Как раз последние 2-3 дня постоянно приходили коды восстановления на телефон, хотя я ничего не запрашивал. Писал в саппорт, те сказали, что все ок, переживать не стоит.


    1. NLO
      10.07.2017 13:20

      НЛО прилетело и опубликовало эту надпись здесь


  1. pr3dat0r
    09.07.2017 23:46

    к примеру само приложение mail.ru почта вообще не проверяет сигнатуру на бекенде(месяца 2 назад писал почтового бота)
    спс за статью.


  1. nanshakov
    10.07.2017 07:37
    +3

    Автор, вы молодец. Достойная награда. Продолжайте изучать инструменты и совершенствовать навыки.


    1. r85qPZ1d3y
      10.07.2017 19:53
      +1

      Автор да, молодец, но достойная награда? Больше похоже на сарказм.


      1. michael_vostrikov
        10.07.2017 21:26
        +1

        120 тыщ для начинающего, тем более для 11-классника, это вполне себе неплохая награда.


        1. norver
          10.07.2017 21:31

          Там еще за ICQ 60 тыс. доплатили.


        1. r85qPZ1d3y
          11.07.2017 02:40
          +4

          А, вон оно чё, в возрасте дело…
          Ну тогда и на bag bounty надо ограничения всякие ставить по этой логике, регистрация с 18 лет, выплаты за баги с 20, 0-day уязвимости рассматриваем только в преклонном возрасте… главное не победа, а участие.


          1. michael_vostrikov
            11.07.2017 09:20
            -1

            Я имел в виду, с точки зрения самого начинающего. Ограничение на возраст тут ни при чем, это ваша логика, а не моя.


  1. ilyaplot
    10.07.2017 11:09
    -3

    Как же глубоко в мозг нам засадили этот номер 88005553535 :)
    Его же давно не рекламируют?


    1. ilyaplot
      12.07.2017 14:47

      Объясните причину отрицательной оценки моего комментария. Разве никто не заметил номер на скриншоте?


      1. povargek
        15.07.2017 21:30

        Скорее, никто шутку не оценил просто


  1. files
    10.07.2017 14:05

    А уязвимость точно устранили? Судя по всему, по этой схеме, меня взломали сегодня утром


    1. NLO
      10.07.2017 18:28

      НЛО прилетело и опубликовало эту надпись здесь


      1. files
        10.07.2017 18:39

        СМС не приходила. Только извещение на почту, что пароль успешно изменен. А при попытке восстановить/изменить пароль сообщение: что Вы уже воспользовались восстановлением, попробуйте позже. Куда, кому и как пришел сброс пароля — не понятно!

        Дополнительно сообщу, что поддержка Вконтакте отреагировала на этот комментарий и пароль удалось восстановить на привязанный телефон (вне очереди). В логах есть два захода с Androida с разных IP (при том, что мобильным приложением давно не пользуюсь).


        1. NLO
          10.07.2017 19:49

          НЛО прилетело и опубликовало эту надпись здесь


          1. files
            10.07.2017 20:20

            Я и написал, что возможно — судя по всему. Так как других версий просто нет! Тем не менее, кто-то воспользовался восстановлением пароля на телефон (при этом самой SMS на моем телефоне нет, я даже на сайте оператора логи проверил).

            IP разные из Германии, но одного провайдера. Никаких мобильных клиентов соцсетей нет на телефоне, кроме FB. Установка из внешних источников запрещена. Самим ВК с телефона последний раз пользовался полгода назад, за это время пароль менялся 3 раза.

            Пароль был сброшен и заходили в аккаунт в 3 часа утра (и повторно в 10), когда телефон не мог находится в интернете (был выключен и компьютер). В общем, все это меня не смутило бы, если бы не выглядело странным.


            1. NLO
              10.07.2017 20:25

              НЛО прилетело и опубликовало эту надпись здесь


            1. norver
              10.07.2017 20:51

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


              1. files
                10.07.2017 21:03

                Восстановление идет только на ТЕЛЕФОН (даже если я указываю привязанную почту). Только что проверил для убедительности.
                Было именно восстановление, так как я не мог воспользоваться повторным восстановлением (лимит 24 часа), кто-то получил/перехватил каким-то образом СМС!


                1. norver
                  10.07.2017 21:16

                  Но если не было SMS в детализации у оператора, то по вашей вине перехватить его точно не могли. Сразу вспоминается история, когда ФСБ совместно с оператором отключили прием сообщений у оппозиционеров для доступа к их переписке в Telegram.


            1. michael_vostrikov
              10.07.2017 21:15
              +1

              Как вариант. Если у них отправляется не напрямую из кода, а через очередь, то возможно SMS просто не успела отправиться. Сначала запрашиваем код на свой номер, вводим в поле, потом с тем же session_id на нужный номер, и сразу же отправляем форму. Код восстановления принимается и стирается из базы. Через N миллисекунд подходит очередь на отправку, а отправлять уже нечего.


              С другой стороны, раз говорят что пофиксили, возможно где-то в другом функционале есть похожая уязвимость с session_id. Или пофиксили на фронт-сервере, а они знают адрес внутреннего сервера, куда пересылается запрос. Ну или криво пофиксили) Можно много чего нафантазировать.


    1. Artyomushko
      10.07.2017 20:29

      Судя по тайм-лайну на HackerOne — да, устранили.
      К тому же, запрещено публиковать пост о найденной уязвимости ранее 30 дней после её устранения.

      Так что да, данная уязвимость устранена, но не исключена возможность того, что существуют другие.


      1. files
        10.07.2017 22:44
        +1

        Я и пытаюсь обратить на это внимание поддержки Вконтакте, так как мой случай весьма показательный. Комментарий michael_vostrikov выше (про стирание смс в очереди) весьма кстати. Видимо где-то что-то упустили из виду.


  1. disakov
    11.07.2017 23:16
    +4

    Я согласен со многими, что парень молодец.
    Выпендреж, что $3к не деньги вызывает улыбку. Оставим за скобками, что даже в Европе и США это хорошие деньги, а уж для выпускника школы это очень круто. Можно и на отдых сгонять и железа прикупить.
    Что касается script-kiddie, не согласен. Делал автор сам, недостаток опыта компенсировал перебором кое-где. Ну и нормально. Не все же сразу становятся Ионеску или lokihardt. Всем задравшим нос предлагаю вспомнить себя в таком возрасте.

    Про универ. На мой взгляд очень правильная мысль была про помощь диплома при переезде. Там вверху кто-то писал про отстуствие диплома и релокацию. Хотелось бы подробнее узнать. Вроде как в некоторых странах годы опыта засчитывают, но далеко не везде. Также это может сказаться на типе визы и условиях пребывания в стране. Если еще полезно время проводить, то есть шанс реального опыта набраться.

    Все двери открыты. Я автору желаю успехов и дальнейших побед.