Массовый взлом ВКонтакте [XSS-червь]


     
    В функционале социальной сети Вконтакте обнаружен и успешно эксплуатировался опасный баг — хранимая XSS с функционалом сетевого червя.


    В данный момент уязвимость устранена.


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



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



    После начала атаки сообщество было заблокировано, но тут же появилось несколько клонов.


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




    Используемый javascript код можно найти по ссылке.


    Примечательно то, что в коде js-пейлоада содержится несколько сообщений, произвольно добавляющихся при распространении:


    var t = ["Всё меньше причин оставаться ВК.. Ждем пока mail group окончательно загонят сайт в яму и переходим на telegram", "Дурову пора создавать новый вконтакте, этот уже испортили", "Прости, Паша, мы все прое*али", "Ну это уже ни в какие рамки", "ВКонтакте окончательно загнулись", "Мда, меилру продолжает губить все, к чему прикасается", "Это пи*дец, товарищи", "Раньше было лучше", "стало очень неудобно", "лучше бы делом занялись", "я просто в шоке", "без комментариев", "Как же достали со своими обновлениями", "Фуфло полное ,не трогайте сообщения!", "сначала музыка, теперь ЭТО", "С такими говновведениями, что тут бодяжат последнее время, со всякими дебильными ветоШными комментами, тупыми закладками, невидимыми репостами и т.д., все и так сбегут скоро"],
    
    d = ["Социальная сеть ВKонтакте зaпустила реклaму в личных сообщенияx пользоватeлей", "СМИ: ВКонтакте запустили pекламу в личных соoбщениях", "ВКонтакте запустили рекламу в сообщениях", "ВКонтакте появилась реклама в сообщениях", "ВКонтакте ввели рекламу в сообщениях", "ВКонтакте тестирует рекламу в личныx сообщениях", "ВКонтакте представили рекламу в личных сообщениях", "Реклaма в личных сoобщениях появилась ВКонтакте", "Пользователей BКонтакте взбесила реклама в личных сообщениях", "Пользователи ВКонтакте протестуют против рекламы в личных сообщениях", "Реклама в личных сообщениях вывела из себя пользователей ВКонтакте", "ВКонтакте: мы запускаем рекламу в личных сообщениях", "ВКонтакте: теперь рекламодатели могут размещать рекламу в сообщениях пользователей", "ВКонтакте прокомментировали жалобы пользoвателей на рекламy в сообщeниях", "Пользователи ВКонтакте в ярости из-за рекламы в личных сообщениях", "Пользователи бегут из социальной сети ВКонтакте из-за рекламы в личных сообщениях"],

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




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

    Support the author
    Share post

    Comments 41

      +21
      за сообщение о такой ошибке MailRu Group выплатили бы щедрое баунти

      А сами багоси пишут, что не платили в течение целого года, именно поэтому и запустили сабж

      +2
      Говорят у них (VK) даже политика CSP не настроена
        0
        Шикарная работа, багосы
          +49
          причем за сообщение о такой ошибке MailRu Group выплатили бы щедрое баунти

          Как человек, который сообщал в Баг Баунти о возможности доступа к многомиллионному количеству аккаунтов в ВК, а через месяц получивший крайне щедрое «мы знаем об этом из внутренних источников» я больше не хочу сообщать туда что-то серьёзное. Сейчас думаю о том, что делать с другими интересными багами.
            –12
            Уже изменил последний абзац, но как багхантера понимаю Вас. Не применимо к ББ ВК, а в целом, примеры приводить не буду, по чатикам и так все о них знают.
              +14
              что делать с другими интересными багами

              Примерно то же, что произошло с одним из багов сегодня

              • UFO just landed and posted this here
                +5

                А, ясно, зря я надеялся на рассмотрение моего medium-репорта за обозримый срок (на данный момент больше месяца уже), раз critical никто не смотрит...

                +56
                совет — выйдите из ВК и не заходите.
                  +8

                  Я бы даже сказал:


                  1. Зайдёт в ВК
                  2. Удалите страницу
                    0
                    У меня не выйдет. Удалил станицу пару лет назад ((
                  +1
                  У меня пару вопросов от нуба
                  1)В вк в сообщениях можно посылать сырые html теги? в данном случае iframe с любыми параметрами
                  2)Как вк(любой сайт) должен защищаться от такого, когда в его теле загружается iframe с левого домена.
                    +1

                    1) Нет, это следствие некорректной обработки ссылки
                    2) В данной уязвимости не было iframe с левым доменом

                      0
                      А что было то? Есть техническое описание, как это было? А то получается, вы всё знаете, но капитаните и молчите. Добавьте еще:
                      3) Вам стоит выйти из vk и зайти снова.
                        0
                        Знаю только то, что уже успели написать в комментарии ниже
                      0
                      )Как вк(любой сайт) должен защищаться от такого, когда в его теле загружается iframe с левого домена.

                      CSP: frame-src
                        0
                        В ВК подразумевается легитимная возможность отображения роликов с ютуба во фрейме. Но в данном случае загвоздка же не в iframe-src была.
                          0
                          подразумевается, и?)
                          бтв — это ответ на вопрос про ифреймы, а не конкретно эту ситуацию все же
                            0
                            Вопрос был в том числе про ВК. CSP в данном случае спасло бы, но только script-src.
                      +6
                      Вот тут чел расписал более коротко и ёмко vk.com/wall278247703_262
                        0
                        Он как-то несколько странно всё описал. Во-первых, про Вики-страницы совершенно ничего не понятно — наверное имелось в виду, что править разметку HTML можно только при редактировании вики-страницы, но никак не при отправке обычного сообщения в ЛС — хотя механизм вставки видеоролика и там и там должен быть примерно одинаковым по идее. И дальше про iframe немного намудрил: вк получает результат парсинга страницы с видеозаписью через локальный скрипт-«гейт», расположенный на домене vk.com, и делается это через обычный XHR скорее всего (в ЛС точно именно так всё происходит). Таким образом, вредоносный скрипт подключается прямо в head текущей страницы.

                        А вот что именно он делает — автор толком не рассказал, а ведь это как раз достаточно интересно.
                          0
                          Всё там хорошо описано.
                            0
                            Я бы не сказал. Слог у автора довольно корявый (я надеюсь, он меня простит, если это читает).
                            0
                            Что делает? Перебирает группы пользователя в цикле и размещает пост там, где это можно. Это же логично. А если нет — можно самому открыть скрипт (там есть скрин, где ссылка на скрипт на гитхабе есть. Достаточно вбить этот url в адресную строку и увидите, как оно работает). Но такой скрипт написать — как раз плюнуть. Гораздо сложнее найти xss-уязвимость и внедрить его. А как это было сделано — об этом как раз автор и рассказывает.
                              +1
                              Да я-то знаю, что он делает. Но не все же тут JS кодеры, кто читает эту новость (возможно). На самом деле, тут есть три интересных момента:

                              1) То, что мы внедрили вредоносный скрипт прямо в документ, дало нам возможность читать через XHR ответы от share.php
                              2) share.php выдаёт список групп и hash, причём последний — не является одноразовым, поэтому и возможна рассылка в цикле подряд без его обновления
                              3) Капчи при этом действительно нет
                          –15
                          Так всегда бывает, когда фронтендом занимаются бэкендеры.
                            –18

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

                              –5
                              Не в этом суть. Отсутствие санитайзинга пользовательского контента по белому списку — это детский сад. Что понятно любому, кто знаком со всем многообразием тегов, аттрибутов и, внезапно, css-свойств.
                          +2
                          Черномырдин (с)
                          Лавров (с)
                            +4
                            Получилось аж микростихотворение.
                              0
                              А что именно из Черномырдина?
                                +2
                                Отродясь такого не бывало, и опять то же самое
                              0
                              Помню такие же развлечения на заре развития, во времена ласипаН -а, когда стена еще была, GET-запросы ты в разных местах создавали записи на стене.
                                +2
                                Извечные проблемы России — дураки, дороги, а теперь еще и социальные сети.

                                Only users with full accounts can post comments. Log in, please.