Обнаружил уязвимость IDOR в видеосервисе и получил вознаграждение

IDOR уязвимость

Сегодня расскажу о том, как обнаружил уязвимость IDOR в конечных точках Legacy API Video Transcode в популярном онлайн-сервисе Vidio. Из-за этой уязвимости злоумышленники могли получить доступ к информации о задачах транскодирования для всех клипов и видео, просто угадывая числовые идентификаторы. Кроме того, обнаружил утечку учетных данных, связанных с ключом API транскодирования в JavaScript-файле.

Еще по теме: Вот как я взломал сайт NASA

Что такое IDOR

IDOR  — это уязвимость, при которой злоумышленник может получить доступ к чужим данным, напрямую изменяя параметры в урла или запроса. Термин IDOR стал популярным после его появления в OWASP Top Ten 2007 года.

IDOR в Legacy API Video Transcode

Исследуя функцию панели управления видеосервиса Vidio, я заметил, что в какой-то момент загрузка видео на сервис стала недоступна «Сейчас функция загрузки отключена. Приносим извинения за неудобства.»

Функция временно отключена
Функция временно отключена

Vidio — один из самых популярных новостных и развлекательных сайтов Индонезии. Пользователи могут наслаждаться прямыми трансляциями, смотреть ТВ и другие эксклюзивные шоу. У Vidio есть программа Bug Bounty (BBP), подробности о которой можно найти на их странице VIDIO BUG BOUNTY PROGRAM.

После чего решил проанализировать JavaScript-файл (в основном вручную) и обнаружил некоторые интересные конечные точки API:

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

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

Для поиска уязвимости я использовал Chrome и Postman. Сначала я решил получить куки аутентификации access_token, remember_user_token и _ vidio_session.

Задача транскодирования клипов

Запрос:

Ответ:

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

Он возвращает важную информацию:

Статус задачи транскодирования видео

Запрос:

Заголовки:

Ответ:

Он возвращает чувствительную информацию:

Статус транскодирования видео

Запрос:

Заголовки:

Ответ:

Из ответа можно получить важную информацию:

Далее я написал простой код на Python, который использует случайные 7 цифр для угадывания clip_id.

Вот шаги PoC:

  1. Получить случайный 7-значный clip_id
  2. Получить задачу транскодирования клипа по clip_id для получения transcode_job_id и video_id
  3. Получить статус задачи транскодирования видео по transcode_job_id
  4. Получить статус транскодирования видео по video_id
  5. Получить детали видео по video_id для получения статуса публикации, названия и даты публикации.

Итак, сохраняем как poc.py и запускаем:

IDOR в Legacy API Video Transcode
Запуск poc.py

В качестве дополнительной информации я также обнаружил жестко закодированные учетные данные в JS-файле:

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

Хронология

  • [10/01/2024] Сообщение об уязвимости отправлено команде безопасности Vidio.
  • [11/01/2024] Подтверждение получения уведомления о проблеме безопасности.
  • [26/01/2024] Результаты проверки команды Vidio подтвердили, что отчет действителен, и классифицировали его как Средний.
  • [26/01/2024] Получено вознаграждение в размере 130$ и добавление в Зал славы.

У меня сложилось положительное впечатление от быстрого реагирования команды безопасности Vidio на мои сообщения.

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер и компьютерный ниндзя. Новые статьи в нашей Телеге!

Добавить комментарий