В очередной день я сидел перед компьютером и не знал, чем заняться. Прокручивая свою ленту уже вернулся ко вчерашним постам, которые уже видел. Перейдя на свою страницу подумал про себя: «Боже, всего 160 подписчиков. Как же это мало. ». И сразу же возник вопрос «А как их увеличить?». Ясное дело, что каждому на ум придет накрутка. Но для этого требовалось либо деньги, либо проводить много времени, подписываясь, делая репосты или лайкая всё, что угодно — это не было выходом.

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

Проснувшись утром и попив кофе, я начал реализовывать эту идею. Для многих уже давно не секрет, что для выполнения запросов от имени пользователя в VK API, нужно иметь его access_token. Но! На самом сайте этого ключа не требуется, чтобы просто протестировать. Перед началом создания этого Супер вируса, я хотел просто проверить его работоспособность.

Для теста и использовал метод friends.add и в поле user_id прописал свой id. Выполнив это действие, адресная строка изменится, на что-то вроде этого:

Эту ссылку я сократил через vk.cc и оставил в комментариях к двум популярным группам с заманчивым описанием. Через полчаса у меня уже было 100 подписчиков (было бы больше, но мой комментарий удалили, а меня забанили). После этого, я стал уверен, что это сработает и приступил к его созданию.

Вконтакте ограничивает доступ к API от одного IP интервалом в 5 секунд, чтобы сервер не перегружался. И для решения проблемы с частыми запросами они создали метод execute. Этот метод позволяет вызывать несколько методов одновременно с сохранением алгоритма, чем я и воспользовался.

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

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

  1. Пользователь перешел по ссылке
  2. Метод получает список всех друзей и сортирует их по рейтингу
  3. Отправляет сообщение с текстом «Смотри /* ссылка */ »
  4. Сообщение удаляется у отправителя
  5. Добавляет в друзья и/или подписывается в указанные группы
  6. Друзья, которые получили сообщение переходят по ссылке
  7. Начинаем с начала

И собственно так выглядит этот код в методе:

Получив ссылку, я радостно пошел протестировать на своем фейковом профиле. Но не тут-то было. Перейдя по ссылке, мне выдало ошибку 12: Синтаксическая ошибка. Не ожидалось символа &. Здесь и начались мои преграды.

Как оказалось, сервер для защиты от XML переводит все знаки. И знак двойных кавычек " просто переводился в & quotes; а консоль
выдавала ошибку. Одинарные кавычки не переводятся, но их он не примет, так как синтаксис от JSON.

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

Хорошо, половина проблемы была решена. Осталась лишь одна проблема: мне нужно было придумать, как передать текст сообщения и слово «hints» для сортировки.

Для решения последней проблемы я подумал использовать регулярные выражения или что-то вроде, для замены числа 0 в строку. Сам я только начинающий web разработчик и не знал, как это делать, и задал вопрос на тостере. Получив два нужных мне ответа с разными путями решений, сразу же решил использовать их. И тут снова проблема…

ВКонтакте API — это не JavaScript и не поддерживает его функции вроде replace() или toString(). Да и вообще ничего не поддерживает из JS, кроме var, return, while, if, else, массивов и операторов сравнения.

Я снова оказался в тупиковом положении и не знал, что мне делать. Я рассказал об этом своим знакомым программистам с просьбой помочь. Со словами «Это просто гениально, чувак!» они решили мне помочь и пошли копаться в документации к API

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

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

Для меня понадобился мой фейковый профиль. Там я сделал два разных поста с такими текстами:

  • Смотри /* ссылка */
  • hints

Всё, что мне требовалось, это получить эти записи и записать в переменные, что я и сделал. В итоге у меня получился такой код:

Получив ссылку, я проверил его на работоспособность и — ура! Всё работало так, как нужно. С фейковой страницы был отправлен запрос на добавление в друзья и успешно переданы сообщения первым 7 друзьям из рейтинга. Сжав ссылку и поставив его на первый пост, я с довольной улыбкой готовился к Большому Буму!

Чтобы еще и знать, сколько людей перешло по ссылке, я сжал ссылку к php файлу на моем хостинге, который записывал посещение в БД, и переадресовывал к методу с кодом.

Для интриги я не стал обновлять страницу каждый раз, а просто вышел из ВК сразу, после одного коммента. Вернулся примерно через час и, посмотрев на количество записей в БД, ощутил прилив счастья. Радости не было предела! Более 5000 переходов. «И этого всего за час! А что же будет через два?» — задавался себе вопросом. Ведь это был мой первый опыт в хакинге.

Решив посмотреть сколько все же набралось лично на странице, я зашел на сайт и вижу целых 3 новых подписчика! Не сказать, что я не был удивлен. Я ничего не понимал… В базе было более 5000 строк, где почти все имели индивидуальный IP, а подписчиков всего 3. Я начал думать, что я на самом деле не такой умный, кое себя считал 2 минут назад, и что от таких махинации у ВК уже есть защита. С такими мыслями я ушел грустить.

Прошло уже 2 дня. Перед тем, как идти спать, я решил проверить свой сайт. Заглянув в базу данных, и ради интереса посмотрел таблицу для записи статистики. Там уже набралось более 25 000 посещении по вирусной ссылке, а подписчиков стало меньше, т.к. отписались еще и те, которые для меня были тестом еще в начале.

Снова перед сном, я наконец понял, почему не было новых подписчиков, а количество переходов росло (кто-нибудь, напишите пост, почему именно перед сном приходят решения? Иначе я сам напишу).
Все дело было в коде. Метод execute выполняет код сохраняя алгоритм, а метод добавления в друзья был в самом конце. Он не срабатывал потому, что дальнейшие методы не выполнялись до тех пор, пока не будет введена капча. Т.к. у всех моих «жертв» было больше 8 друзей, естественно срабатывала капча, а пользователи заподозрив что-то, просто закрывали вкладку. Запись сохранялась, сообщения передавались, а рабов подписчиков не становилось больше.

Сразу скакнув из кровати, я решил исправить это быстро, чтобы к утру было уже более десяток тысяч подписчиков. После внесении изменении в php файле переадресации, я ушел спать с довольными мыслями завтрашнем дне.

Наступает утро и я проверяю свой профиль, даже не попив свой кофе. Ура! Подписчиков стало меньше…
Я снова был крайне удивлен. Всё же должно работать. На сей раз я решил проверить работоспособность ссылки на настоящем профиле. Удалив код, удаления сообщения, я перешел по сгенерированной ссылке. Оказывается эту уязвимость разработчики уже закрыли. Код в адресные строке по переходу уже не срабатывал

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

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

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

Будьте очень внимательны и осторожны, при отправки cкримера людям. Автор сайта www.onetime.club не несёт никакой ответственности за возможный вред, прямо или косвенно причиненный в связи с посещением данного сайта. Всё делаете на свой страх и риск. Пожалуйста, будьте благоразумны!

P.S. Нажимая кнопку Посмотреть cкример, Вы переходите на страницу скримера. Будьте осторожны, не наложите в штаны 😉

Скример (от англ. screamer — крикун, он же видеопугалка, пугач, шокер, он же англ. jumpscare) — собирательное название для флешек, видео и прочего. Один из самых примитивных вариантов шок-контента.

и сообщите о ложном срабатывании или новом вирусе

Нажимая кнопку "Проверить", вы соглашаетесь с Условиями использования Kaspersky VirusDesk

Произошла ошибка при проверке. Попробуйте позже

Превышено допустимое количество загруженных одновременно файлов.
Добавьте файлы в архив размером не более 50 МБ или отправьте каждый в отдельности

Произошла ошибка при проверке. Попробуйте позже

От вас поступило много запросов. Подтвердите, что вы не робот

Идет проверка. Пожалуйста, подождите.

Проверка занимает не более двух минут.

Вопросы и ответы

Для проверки используются антивирусные базы и данные о репутации файлов из Kaspersky Security Network. Kaspersky VirusDesk сообщает об известных угрозах, найденных в файле, и выводит подробную информацию о нем. Лечение файлов не предусмотрено.

Важно: Kaspersky VirusDesk не является защитным решением.

Результат проверки файла с помощью Kaspersky VirusDesk может отличаться от результата проверки антивирусными программами «Лаборатории Касперского» из-за разных настроек.

Kaspersky VirusDesk проверяет файлы и архивы размером до 50 МБ. Если у вас несколько файлов, добавьте их в архив с паролем virus или infected. Если вы хотите проверить файл больше 50 МБ, мы рекомендуем воспользоваться Kaspersky Whitelist для проверки репутации файла по контрольной сумме.

Kaspersky VirusDesk проверяет репутацию ссылки в Kaspersky Security Network и выводит результат:

  • Ссылка вредоносная или угроза потери данных при переходе по ссылке. Переход по этой ссылке может нанести вред вашим данным или вашему устройству. Мы не рекомендуем переходить по такой ссылке.
  • Ссылка может быть небезопасна. Такая ссылка может быть использована злоумышленником, чтобы нанести вред вашим данным или устройству. Переходя по ссылке, вы принимаете на себя ответственность за возможные риски.
  • Ссылка безопасна. Такие ссылки можно открывать без риска потери данных и без вреда для устройства. Содержимое по ссылке относится к безопасной категории в Kaspersky Security Network.
  • Ссылка ведет на программы, которые содержат рекламу. Содержимое по ссылке относится к программам, которые показывают рекламу.
  • Сведений о ссылке не найдено. В Kaspersky Security Network недостаточно данных для присвоения категории. Переходя по ссылке, вы принимаете на себя ответственность за возможные риски.

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

Kaspersky VirusDesk может определить тип программы-шифровальщика, но не сможет выполнить расшифровку файла. Попробуйте их расшифровать с помощью наших бесплатных программ: https://noransom.kaspersky.com/ru

Ложное срабатывание – это ошибочное обнаружение угрозы в файле или ссылке, в то время как файл или ссылка безопасны.

Если вы не согласны с результатом проверки, сообщите нам об этом с помощью кнопки «Отправить на исследование» на странице результата проверки.

Вы может отправить на исследование файл до 35 МБ.