Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
В декабре 2019 года в ходе работы по программе багбаунти Google Vulnerability Reward Program (VRP) Давид Шюц заинтересовался возможностью просмотра приватных видео на YouTube. В настройках каждого загруженного на видеохостинг ролика пользователь должен указать параметры доступа к нему. Всего предусмотрено три варианта:
Самая интересная, с точки зрения хакера, безусловно, третья категория видеороликов. В попытке просмотреть загруженное им на собственный аккаунт видео со статусом «Ограниченный доступ» из‑под другой учетки Давид щелкал по всем кнопкам и ссылкам на сайте видеохостинга и пытался всячески модифицировать URL ролика. Но попытки оказывались тщетными: YouTube с завидным упорством возвращал сообщение об ошибке доступа.
Тогда исследователь решил пойти обходным путем. Он руководствовался простой идеей, которую часто берут на вооружение пентестеры: если основной сервис в достаточной степени защищен от компрометации, могут отыскаться связанные с ним сторонние сервисы, использующие его API, или ресурсы, у которых дела с безопасностью обстоят не так хорошо. В качестве цели он выбрал сервис контекстной рекламы Google Ads.
Давид обратил внимание на то, что Google Ads взаимодействует со многими службами Google. Например, реклама, которая демонстрируется при просмотре видео на YouTube, настраивается с помощью Google Ads. Ради эксперимента Шюц зарегистрировал аккаунт в рекламном кабинете Google и попытался настроить рекламу с использованием ID его приватного видео. Безуспешно — система не позволила провернуть такой трюк.
После этого Шюц принялся изучать имеющиеся в его распоряжении настройки рекламного кабинета. Целью поисков было что‑нибудь, имеющее непосредственное отношение к YouTube. Среди прочего в рекламном аккаунте обнаружился раздел «Видео» (Video), в котором отображаются используемые для рекламы ролики. Щелчок мышью на превью открывает раздел «Аналитика» (Analytics), где приводятся сведения о ролике и располагается встроенный проигрыватель. Давид обратил внимание на функцию «Моменты» (Moments) — она позволяет рекламодателю отмечать определенные эпизоды на видео. С ее помощью можно выделить кадр, в котором на экране демонстрируется рекламируемый продукт или логотип компании, и изучить действия пользователей в этот момент. Лучше всего механизм действия данного инструмента демонстрирует анимация, созданная самим Давидом Шюцем.
Проанализировав логи прокси, Давид обнаружил, что всякий раз, когда он создает «момент» в ролике, сайт Google Ads отсылает POST-запрос на эндпойнт /
, тело которого содержит ID целевого видеоролика и имеет следующий вид:
POST /aw_video/_/rpc/VideoMomentService/GetThumbnails HTTP/1.1
Host: ads.google.com
User-Agent: Internet-Explorer-6
Cookie: [redacted]
__ar={"X":"kCTeqs1F4ME","Y":"12240","3":"387719230"}
Параметр X
в строке __ar
— это ID целевого ролика, а Y
— временная метка отмеченного момента в миллисекундах. В ответ на этот запрос сервер возвращает закодированную в Base64 картинку — миниатюру кадра, который выбран в рекламном кабинете с помощью инструмента «Моменты». Заменив в запросе параметр X
на ID своего «приватного» видео, Давид неожиданно для себя получил ответ с закодированным кадром. Таким образом, он обнаружил ошибку IDOR (Insecure Direct Object Reference), позволяющую получить доступ к защищенным настройками приватности данным. Но с использованием уязвимости исследователю удалось раздобыть всего лишь один кадр из частного видео. Хороший результат, но явно недостаточный.
|
|