Хабрахабр

[Перевод] Unrestricted File Upload at Apple.com

Внимание — это фривольный перевод заметки о том, как именно Jonathan Bouman нашёл публичный AWS S3, который использовался на одном из поддоменнов apple.com. Плюс заметка хороша тем, что наглядно демонстрирует пользу от нескольких маленьких утилит в совокупности с терпением.

Эта утилита может обнаружить поддомены в заданном домене используя открытые источники и метод грубой силы со словарём.
Возьмите кофе и запустите Aquatone.

Aquatone имеет четыре различные команды:

  1. Aquatone-discover — ищет различные поддомены
  2. Aquatone-scan — сканирует результат п.1. на открытые порты
  3. Aquatone-gather — создаёт скриншоты каждого сабдомена, собирая все результаты в html-отчёт
  4. Aquatone-takeover — пытается найти неактивные поддомены, которые хостятся внешними хостерами. Нашёл один? Иди регистрируй и получай свою награду!


Report output of Aquatone
Сидим, ждём, мечтаем.

Это заняло 30 минут, 84 отчёта, 18к уникальных хостов. Обычно нужно несколько минут на поиск, скан и сбор.
А на Apple.com?

Определённо нет. Мы первые кто использует aquatone для скана apple.com? Определённо нет. Читали ли другие люди все 84 страницы?

Так что начнём со страницы 50 и прочтём лишь последние 34 страницы.

Поиск аномалий в шаблонах

Один из них в том, что apple.com иногда использует AWS S3 для хранения файлов, используемых их поддоменами. После 50 минут чтения отчётов замечен шаблон. Так что, если можно получить доступ на запись на один из S3 — можно обеспечить доступ на один из поддоменов apple.com.

Все отчёты содержат http-заголовки, отправляемые сервером. Чтение всех 84х отчётов — скука. Поиск этого заголовка в отчётах: S3 — всегда отправляет заголовок X-Amz-Bucket-Region.

Почти все поддомены отдают Access denied. Теперь каждый вручную нужно прокликать, чтобы увидеть, что будет, если открыть урлу.

Кроме одного: live-promotions.apple.com


S3 response, containing the bucket name and directory contents.

Это позволяет напрямую коннектиться к нему Итак, теперь есть имя S3 бакета.

Как получить доступ, смотрите здесь.

Нужно установить Command Line Interface of AWS и можно пробовать открыть этот бакет используя имя из ответа выше

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

aws s3 cp login.html s3://$bucketName --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers


алерт кук

Достаточно для залития фишингового сайта или воровства кук. Заключение
Был получен полный доступ на чтение/запись на S3 бакет Apple, который доступен на одном из их поддоменов.

доку: docs.aws.amazon.com/AmazonS3/latest/dev/access-control-overview.html Решение
Никогда не предоставлять анонимам права на чтение/запись
К счастью защита S3 довольно проста и настроена по дефолту
см.

Что это было:

— Загружена фишинговая страница на live-promotions.apple.com
— Можно было красть кукисы посетителей
— Можно было стянуть конфиденциальные файлы из бакета (он содержал проекты на xcode)

Зал славы

В тот же день он был исправлен и теперь он упомянут в зале славы Спустя 4 часа я получил ответ от Apple, подтверждающий баг.

Письмо + скрин из зала


Timeline

19–06–2018 Discovered and reported bug
19–06–2018 Apple confirmed the bug
19–06–2018 Apple fixed the bug
22–06–2018 Apple mentioned me in the Hall of Fame
22–06–2018 Published this blog

Теги
Показать больше

Похожие статьи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть