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


Предыстория



Вечерами, в перерывах между чтением школьной литературы на лето, я участвовал в 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)


  1. aszhitarev
    20.09.2019 11:37
    +5

    Особенно иронично слить оттуда курс по ИБ


    1. xaleraf4ra Автор
      20.09.2019 11:43

      Все для статьи ;)


  1. vilgeforce
    20.09.2019 14:12

    Не совсем понятно почему uploads.hb.cldmail.ru — Amazon S3 bucket. IP у него mail.ru-шный, хотя ответ сейчас похож на Amazon-овский


    1. xaleraf4ra Автор
      20.09.2019 14:19

      Я сам сначала не понял что это, обычно s3 бакеты выглядят следуйщем образом [бакет].s3.amazonaws.com, но тут видимо что то кастомное.


      1. vilgeforce
        20.09.2019 14:21

        Ну да, вероятно своя реализация Bucket'а, но не Amazon :-)


        1. xaleraf4ra Автор
          20.09.2019 14:26
          +1


          Нет, это как раз таки был Amazon )


          1. vilgeforce
            20.09.2019 14:28

            Либо они используют совместимый с Amazon API… Интересно, в общем :-)


            1. xaleraf4ra Автор
              20.09.2019 14:29

              Ага )


              1. OnYourLips
                21.09.2019 01:13

                https://github.com/minio/minio


                Вот популярное решение, которое совместимо с S3, разворачивается в пару команд.


            1. Talkerbox
              20.09.2019 15:19

              deleted


              1. xaleraf4ra Автор
                20.09.2019 15:22

                Лень было настраивать все через MCS ;) Решили не заморачиваться и накатить простой Amazon бакет )


          1. marataziat
            21.09.2019 18:02

            Нене, IP пренадлежит mailru check-host.net/ip-info?host=uploads.hb.cldmail.ru
            Возможно это self hosted бакет как minio где неправильно права настроили :)


      1. tmin10
        20.09.2019 19:58

        https://mcs.mail.ru/storage/
        Они щаявляют совместимость с S3, видимо и маскируются, чтобы программы работали как с S3.


    1. zeldigas
      20.09.2019 14:21
      +2

      Если бы не пример с использованием aws cli без --endpoint в статье, я бы предположил, что это кусок облака mail.ru. У них есть s3-совместимое хранилище (со своими особенностями, но для простых операций не отличить)


  1. Sovetnikov
    20.09.2019 14:52

    У MCS ведь есть свой S3 хостинг, почему они используют Amazon? :)


    1. xaleraf4ra Автор
      20.09.2019 15:02

      Хрен его знает ))))


      1. Sovetnikov
        20.09.2019 15:07

        uploads.hb.cldmail.ru это всё же сервер MCS, а не Амазона
        Свой хостинг они используют


        1. xaleraf4ra Автор
          20.09.2019 15:18

          Да, но видимо они еще используют API Амазона на этом домене.



          1. gecube
            20.09.2019 17:58

            Может это просто версия объекта амазон-совместимого хранилища?
            Вывод о проксировании на Амазон как минимум беспочвенный и голословныйй


    1. iGeophysix
      20.09.2019 20:41

      потому что изначально GeekBrains были отдельной компанией.
      Потом Mail.ru их выкупил.
      А вообще у MCS есть S3-like хранилище. Видимо и синтаксис схожий, чтобы можно было использовать одинаковые библиотеки


  1. Artifeks
    20.09.2019 19:29
    +1

    Заголовок немного желтоват, не?


    1. xaleraf4ra Автор
      20.09.2019 20:41

      Та не норм вроде )


  1. playnet
    20.09.2019 19:44
    -1

    А где актуальная ссылка чтобы выкачать курсы? )


    1. xaleraf4ra Автор
      20.09.2019 20:42

      Ненада, иначе мое очко пробьют ;)


      1. intrud3r
        23.09.2019 12:46

        Эх молодняк, научись иметь уважение к себе, прежде всего.