Через встроенный проигрыватель YouTube можно было получить историю просмотров и скрытые видео пользователей

Никакого взлома — просто использование стандартных возможностей YouTube Player API.

Багхантер из Венгрии Дэвид Шютц (David Schütz) обнаружил, что если проигрыватель YouTube встроен на сайт с помощью YouTube Player API, то через него можно получить информацию об активности пользователя на видеохостинге.

История просмотров, список «Посмотреть позже», понравившиеся видео, загруженные ролики — всё это особые плейлисты, которые YouTube создаёт автоматически. Они есть у каждого пользователя. На самом YouTube они реализованы так, что полный доступ к содержимому есть только у владельцев. Однако через API встроенного проигрывателя получить видео из этих плейлистов могли злоумышленники.

Специальные плейлисты YouTube

Получить историю просмотров и список «Посмотреть позже» было очень просто

API проигрывателя IFrame позволяет встроить плеер YouTube на сайт и управлять им с помощью JavaScript. Благодаря этому можно добавлять видео в очередь воспроизведения, воспроизводить, ставить на паузу, останавливать и выполнять другие действия. Также можно добавлять функции прослушивания событий, которые вызываются в ответ на определённые действия. Команды отправляются с помощью метода postMessage.

Важный момент: если вы авторизованы на YouTube, то встроенный на стороннем сайте проигрыватель тоже авторизуется. Благодаря этому просмотренные видео добавляются в историю просмотров, вы также можете отправлять их в список «Посмотреть позже». Проще говоря, у встроенного проигрывателя такой же доступ к вашей учётной записи, как у основного сайта YouTube.

Дэвид Шютц обратил внимание на функцию YouTube Player API, которая позволяет получить видео из текущего плейлиста. Он создал тестовую страницу, встроил на неё проигрыватель YouTube, добавил плейлист с историей просмотров и вызвал функцию player.getPlaylist(). В результате в консоли отобразился список просмотренных видео со стороннего аккаунта. Так же просто было получить список видео из плейлиста «Посмотреть позже».

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

Автоматические плейлисты YouTube

Получить список понравившихся и загруженных видео было сложнее, но тоже реально

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

Источник: bugs.xdavidhu.me