Багхантер из Венгрии Дэвид Шютц (David Schu?tz) обнаружил, что если проигрыватель YouTube встроен на сайт с помощью YouTube Player API, то через него можно получить информацию об активности пользователя на видеохостинге.
История просмотров, список «Посмотреть позже», понравившиеся видео, загруженные ролики — всё это особые плейлисты, которые YouTube создаёт автоматически. Они есть у каждого пользователя. На самом YouTube они реализованы так, что полный доступ к содержимому есть только у владельцев. Однако через API встроенного проигрывателя получить видео из этих плейлистов могли злоумышленники.
API проигрывателя IFrame позволяет встроить плеер YouTube на сайт и управлять им с помощью JavaScript. Благодаря этому можно добавлять видео в очередь воспроизведения, воспроизводить, ставить на паузу, останавливать и выполнять другие действия. Также можно добавлять функции прослушивания событий, которые вызываются в ответ на определённые действия. Команды отправляются с помощью метода postMessage.
Важный момент: если вы авторизованы на YouTube, то встроенный на стороннем сайте проигрыватель тоже авторизуется. Благодаря этому просмотренные видео добавляются в историю просмотров, вы также можете отправлять их в список «Посмотреть позже». Проще говоря, у встроенного проигрывателя такой же доступ к вашей учётной записи, как у основного сайта YouTube.
Infrastructure Security Team Lead
Exness, Лимассол, Кипр, По итогам собеседования
tproger.ru
Вакансии на tproger.ru
Дэвид Шютц обратил внимание на функцию YouTube Player API, которая позволяет получить видео из текущего плейлиста. Он создал тестовую страницу, встроил на неё проигрыватель YouTube, добавил плейлист с историей просмотров и вызвал функцию player.getPlaylist(). В результате в консоли отобразился список просмотренных видео со стороннего аккаунта. Так же просто было получить список видео из плейлиста «Посмотреть позже».
Для кражи содержимого плейлиста с понравившимися видео, любого личного плейлиста жертвы, а также информации о приватных видео использовались уже целенаправленные атаки. Для успешного результата нужно знать идентификаторы плейлистов и отдельных частных видео. Это более сложные задачи, но их тоже удалось решить. В итоге Дэвид получил список всех загруженных видео, в том числе тех, которые не отображаются в общей выдаче.
Сейчас эти проблемы с доступом к чужой истории активности устранены. При попытке получить частные или специальные плейлисты возвращается ошибка.
Источник: