[Из песочницы] Уязвимости GeekBrains: Зачем платить деньги за курсы если их можно просто скачать?

itrjgu4vop_udiwjknf36_mluza.png

Небольшой сказ о маленькой погрешности, с помощью которой был получен доступ ко всем платным курсам и домашним заданиям на ресурсах. А так же немного о других найденных уязвимостях.

Предыстория

Вечерами, в перерывах между чтением школьной литературы на лето, я участвовал в bug bounty программе от Mail.ru Group.

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

На тот момент я уже знал об образовательном IT проекте GeekBrains, не думал что смогу выцепить там что-то интересное, но я ошибался.

API

Углубившись в тестирование личного кабинета пользователя, я сразу наткнулся на API сервиса.

С помощью DIRB я вышел на метод projects, перебирая id проектов я выпал на любопытный URL.

gwfuv3yyq48tysl-w6l7pa6k4ou.png

Это открытый Amazon S3 bucket. На нём в «свободном доступе» лежат материалы и учебная литература практически ко всем курсам ресурса.

r9roorwp4zkvssopv8z7v4lapq4.png

Вот например презентация к курсу «Информационная Безопасность»

Или вот, домашняя работа ученика курса «Java developer»

dpyczurx0b_fhjn9eztkv86eg4o.png

Здесь так же присутствует большое количество приватной информации на каждого участника курса.

Идём дальше

Рассуждая логически, если у них есть один S3 бакет значит, возможно, есть и другие!

На этом этапе воспользовался lazys3. Довольно удобный инструмент для поиска S3 бакетов.

После перебора я обнаружил еще один бакет, это был geekbrains-uploads.s3.amazonaws.com

К сожалению прямой просмотр файлов недоступен, но есть возможность загрузить свой.

С помощью стандартной AWS утилиты заливаем на сервер TXT файл.

aws s3 mv xalerafera.txt s3://geekbrains-uploads

1phidb9-po2thxtmfspt5v0trr8.png

Сюда можно залить исполняемый файл или другую гадость.

На этом моменте я зарепортил уязвимости, а спустя несколько дней я получил за них выплаты.

Помимо этих двух дыр, я обнаружил еще XSS в личных сообщениях.

Есть еще одна уязвимость, о которой хотелось бы рассказать, но она всё ещё Triaged.

Итоги

Закрывайте ваши S3 бакеты, это может привести к серьезным потерям.

Хочу поблагодарить AlexShmel, за помощь в написании статьи.

Habrahabr.ru прочитано 21283 раза