image

Это вторая часть серии статей «Неочевидные уязвимости онлайн сервисов». В прошлой части мы попробовали разобраться, какими могут быть уязвимости и какие идеи эксплуатации не лежат на поверхности. Остановились на том, что инструмент известной организации W3C — Unicorn, служащий для HTML/CSS валидации, также был подвержен хранимой XSS уязвимости.

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

Важное отступление


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

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

Проблемы безопасности валидаторов


О какой безопасности может идти речь в простых HTML и CSS валидаторах? Справедливо, но погодите кидаться камнями, дайте всё объяснить. Безусловно, некоторые валидаторы бесплатные и без регистрации, что по сути снижает риск вреда для пользователя.

Но это может стать проблемой как только какой-то крупный сервис захочет внедрить к себе на сайт валидатор, например, чтобы собирать около тематический трафик для своих платных услуг (как это было с dig утилитой).

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


Уязвимость W3C Unicorn была в том, что выводимые сообщения об ошибке в HTML коде, на самом деле содержали скрипт и никак не экранировались. Поэтому достаточно было в самых неожиданных местах написать скрипт.

image

Уязвимость на W3C уже исправлена. Там же, в Pull Request, можно найти адрес моего онлайн сервиса, с еще уязвимой версией Юникорна. Можете попробовать найти указанные уязвимости самостоятельно.

Так в чем проблема безопасности, собственно? Сервис этот бесплатный и не собирает персональных данных.

Справедливый вопрос, но что скажете по поводу 2 миллионов посетителей в месяц, с платными подписками? Инструмент CSS Validator известного сайта codebeautify был подвержен точно такой же XSS уязвимости.


Вывод простой — следует экранировать любые сообщения, которые тем или иным способом могут попасть на клиентскую сторону сайта.

Сервисы аналитики и просмотра социальных сетей


Несколько миллионов посетителей в месяц заходят на сайты наших следующих испытуемых — анонимные «просмотрщики» инстаграм лент и аккаунтов. Достаточно популярный запрос с заметно растущим трендом, согласно данным сервиса Google Trends.

image

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

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

Оказалось, что все они искали уязвимости в официальном Web приложении Instagram, участвуя в программе BugBounty от Facebook. Вот только там XSS атака не сработала, чего нельзя сказать о смежных сервисах «просмотрщиках».


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

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

Полагаю, что другие схожие сервисы и онлайн инструменты аналитики разных социальных сетей (VK, FB, Twitter, etc.) подвержены подобным XSS атакам. Если вы владелец подобного ресурса — проверьте безопасность ваших пользователей.

Сервисы сбора статистики и веб-аналитики


После выхода первой части статьи, кто-то сетовал на несерьезность написания скриптов в теги title и description. Некоторые читатели писали мне, что не видят практичности в применении подобной техники поиска Stored XSS.

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


Так, например, в отчете «Анализ страниц» известного зарубежного сервиса Statcounter (с более чем тремя миллионами посетителей в месяц — по данным SimilarWeb) можно было увидеть выполнение скрипта с моего сайта. Уязвимость как раз в том, что этот сервис выводил необработанное содержимое тегов и с подготовленного сайта.

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


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

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

На этом, серия неочевидных уязвимостей можно считать закрытой. Надеюсь, мои статьи будут полезны для сообщества и вместе, мы сделаем онлайн-сервисы немного безопаснее. В черновиках пылится еще одна статья, по наиболее частым уязвимостям онлайн-сервисов, если будет интересно — постараюсь опубликовать. До встречи в новых статьях!

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