Небольшой сказ о маленькой погрешности, с помощью которой был получен доступ ко всем платным курсам и домашним заданиям на ресурсах. А так же немного о других найденных уязвимостях.
Предыстория
Вечерами, в перерывах между чтением школьной литературы на лето, я участвовал в bug bounty программе от Mail.ru Group.
Я искал новые поддомены и сервисы которыми владеют Mail.ru, на них довольно часто встречаются разного рода уязвимости.
На тот момент я уже знал об образовательном IT проекте GeekBrains, не думал что смогу выцепить там что-то интересное, но я ошибался.
API
Углубившись в тестирование личного кабинета пользователя, я сразу наткнулся на API сервиса.
С помощью DIRB я вышел на метод projects, перебирая id проектов я выпал на любопытный URL.
Это открытый Amazon S3 bucket. На нём в «свободном доступе» лежат материалы и учебная литература практически ко всем курсам ресурса.
Вот например презентация к курсу «Информационная Безопасность»
Или вот, домашняя работа ученика курса «Java developer»
Здесь так же присутствует большое количество приватной информации на каждого участника курса.
Идём дальше
Рассуждая логически, если у них есть один S3 бакет значит, возможно, есть и другие!
На этом этапе воспользовался lazys3. Довольно удобный инструмент для поиска S3 бакетов.
После перебора я обнаружил еще один бакет, это был geekbrains-uploads.s3.amazonaws.com
К сожалению прямой просмотр файлов недоступен, но есть возможность загрузить свой.
С помощью стандартной AWS утилиты заливаем на сервер TXT файл.
aws s3 mv xalerafera.txt s3://geekbrains-uploads
Сюда можно залить исполняемый файл или другую гадость.
На этом моменте я зарепортил уязвимости, а спустя несколько дней я получил за них выплаты.
Помимо этих двух дыр, я обнаружил еще XSS в личных сообщениях.
Есть еще одна уязвимость, о которой хотелось бы рассказать, но она всё ещё Triaged.
Итоги
Закрывайте ваши S3 бакеты, это может привести к серьезным потерям.
Хочу поблагодарить AlexShmel, за помощь в написании статьи.
Комментарии (25)
vilgeforce
20.09.2019 14:12Не совсем понятно почему uploads.hb.cldmail.ru — Amazon S3 bucket. IP у него mail.ru-шный, хотя ответ сейчас похож на Amazon-овский
xaleraf4ra Автор
20.09.2019 14:19Я сам сначала не понял что это, обычно s3 бакеты выглядят следуйщем образом [бакет].s3.amazonaws.com, но тут видимо что то кастомное.
vilgeforce
20.09.2019 14:21Ну да, вероятно своя реализация Bucket'а, но не Amazon :-)
xaleraf4ra Автор
20.09.2019 14:26+1
Нет, это как раз таки был Amazon )
vilgeforce
20.09.2019 14:28Либо они используют совместимый с Amazon API… Интересно, в общем :-)
xaleraf4ra Автор
20.09.2019 14:29Ага )
OnYourLips
21.09.2019 01:13https://github.com/minio/minio
Вот популярное решение, которое совместимо с S3, разворачивается в пару команд.
Talkerbox
20.09.2019 15:19deleted
xaleraf4ra Автор
20.09.2019 15:22Лень было настраивать все через MCS ;) Решили не заморачиваться и накатить простой Amazon бакет )
marataziat
21.09.2019 18:02Нене, IP пренадлежит mailru check-host.net/ip-info?host=uploads.hb.cldmail.ru
Возможно это self hosted бакет как minio где неправильно права настроили :)
tmin10
20.09.2019 19:58https://mcs.mail.ru/storage/
Они щаявляют совместимость с S3, видимо и маскируются, чтобы программы работали как с S3.
zeldigas
20.09.2019 14:21+2Если бы не пример с использованием aws cli без
--endpoint
в статье, я бы предположил, что это кусок облака mail.ru. У них есть s3-совместимое хранилище (со своими особенностями, но для простых операций не отличить)
Sovetnikov
20.09.2019 14:52У MCS ведь есть свой S3 хостинг, почему они используют Amazon? :)
xaleraf4ra Автор
20.09.2019 15:02Хрен его знает ))))
Sovetnikov
20.09.2019 15:07uploads.hb.cldmail.ru это всё же сервер MCS, а не Амазона
Свой хостинг они используютxaleraf4ra Автор
20.09.2019 15:18Да, но видимо они еще используют API Амазона на этом домене.
gecube
20.09.2019 17:58Может это просто версия объекта амазон-совместимого хранилища?
Вывод о проксировании на Амазон как минимум беспочвенный и голословныйй
iGeophysix
20.09.2019 20:41потому что изначально GeekBrains были отдельной компанией.
Потом Mail.ru их выкупил.
А вообще у MCS есть S3-like хранилище. Видимо и синтаксис схожий, чтобы можно было использовать одинаковые библиотеки
playnet
20.09.2019 19:44-1А где актуальная ссылка чтобы выкачать курсы? )
aszhitarev
Особенно иронично слить оттуда курс по ИБ
xaleraf4ra Автор
Все для статьи ;)