Главное Авторские колонки Вакансии Образование
😼
Выбор
редакции
36 012 6 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Уязвимость Bitrix. Как собрать персональные данные и заспамить недруга

У вас есть сайты на «Битрикс»? Под тревожную музыку мы расскажем, как это может по вам ударить. И, само собой, что сделать, чтобы избежать проблем
Мнение автора может не совпадать с мнением редакции

Всем привет!

Мы в «Иващенко и Низамов» занимаемся поисковым продвижением сайтов, контекстной и таргетированной рекламой. Иногда в процессе работы мы решаем задачи, которые, откровенно говоря, решать не должны. И вот это как раз такой случай.

b_5d82129499447.jpg

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

b_5d820a63eeb7f.jpg

DDoS? Ок, мы принялись изучать, в чем проблема.

Беглый анализ навел на две, одинаково неприятные, мысли:

  1. Мы устроили хостингу DDoS, когда проверяли его на наличие вирусов.
  2. Мы устроили сайту DDoS, когда скачивали картинки для обработки и пакетного сжатия.

Еще было подозрение на погоду. Мало ли, надуло.

b_5d821b6f1e14b.jpg

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

Тем временем хостер написал еще одно обиженное письмо. А у нас подошло время полной ежемесячной проверки сайта, и в «Вебмастере» были обнаружены коварные ссылочки (очень много) следующего вида:

/bitrix/rk.php?=goto=http…

Сайты, которые ссылались на наш проект, были, мягко говоря, плохие. Даже не МФА, а просто не пойми что. Очень неприятный звоночек.

Таким способом несколько лет назад валили казахстанские банки. Использовали open redirect для фишингового сбора данных.

Уязвимость позволяет любому сайту закинуть на свою страницу ссылку вида:

http(s)://домен.жертва/bitrix/redirect.php?goto=http://домен.агрессор/*что-нибудь*

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

Как такое возможно? А вот как.

Проблема в родной конфигурации «Битрикс». Это rk.php и redirect.php — служебные файлы, используемые системой для сбора статистики редиректов пользователей при клике по баннерам и ссылкам.

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

b_5d821ebae0d46.jpg

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

Другая цель: испортить представление поисковых систем о вашем сайте. Потому что робот увидит миллион «не тех» ссылок, лучше (хуже) чтобы ссылки шли на что-то совсем неудобоваримое, типа троянов, и накажет. Опять же, скорость и доступность вашего сайта будут ограничены.

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

Мы решили бороться по-простому:

  • включили встроенную в «Битрикс» функцию «Защита редиректов от фишинга» при переходе по ссылкам (пользователям будет выдаваться окно подтверждения перехода по ссылке);

b_5d820ab791164.jpg

  • указали в robots.txt директивы disallow для обоих этих файлов.

Что вы думаете, помогло? Не тут-то было.

Эмоции немножко накалились. И мы стали биться в двери «Битрикс». Что они нам изначально ответили? Ну конечно же, выслали перечень типизированных работ, которые мы уже провели!

b_5d820ad9113e4.jpg

Пишем, что все сделали, а результатов нет.

МХАТ. Пауза.

И к нашему великому удивлению решение поддержки было следующим:

b_5d820aeca42dc.jpg

Пожалуй, это и смешно, и грустно. Поддержка «Битрикса» рекомендует удалить кусок, пусть и небольшой, собственного продукта. И это помогает.

Напоминаем, проблеме уже не один год. И хотя на официальном форуме «Битрикс» старт обсуждения датируется 2004 годом, никаких упоминаний об этой лазейке в документации нет.

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

b_5d821028df668.jpg

Материал подготовлен Еленой Кулишкиной. «Иващенко и Низамов»

В качестве консультанта выступил из сумрака наш разработчик: Илья Соловьев

***

Читателям SPARK мы предлагаем проверить свой сайт у наших специалистов совершенно бесплатно, заказав SEO-аудит с помощью промокода SPARK1809.

***

+1
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Ae It
Данная "уязвимость" очень просто решается внесением следующего кода в настройки apache (файл .htaccess) :

<FilesMatch "(rk|redirect).(php)$">
RewriteCond %{QUERY_STRING} !goto=.*домен вашего сайта* [NC]
RewriteRule ^.*$ - [F]
</FilesMatch>

И никакой нагрузки, пользуйтесь.
Ответить
Чистяков Алексей
Спасибо, но бы рекомендовали пользоваться методом, описанным в статье.
1. Ваш метод не является универсальным, он рассчитан только на apache, не на nginx или, скажем, lighttpd.
2. Ваш способ мог бы сработать, но стоит заметить, что GET-параметр goto в строке url содержит не *наш сайт*, а *целевой фишинговый сайт*, это нужно исправить.
Максимум, что можно сделать при помощи .htaccess в данном случае: перенаправить все ссылки содержащие ?goto= на главную (или любую другую) страницу сайта, что не является качественным решением
Ответить
Ae It
1. В статье речь идет про виртуальный хостинг, на которых у Вас нет доступа к nginx, только apache, поэтому решение для него. Был бы VPS, я думаю и проблемы бы не было (при грамотной настройке).
2. Если загуглите синтаксис кода, который я привёл, то будет понятно, что данным кодом мы сбрасываем все соединения, НЕ содержащие в goto наш домен, о чем говорит ! знак. И не нужно никуда ничего перенаправлять, увидел вредоносный редирект-давай до свидания.
Ответить
Антон Pilezkiy
Еще одна статья, ругающая Битрикс, лишь бы попиариться на хайпе.
Если юзверь не смотрит на каком сайте он оказался тыкая на ссылку где-то в интернете и оставляет там "персональные данные", то такому можно и в самой ссылке указать прямой адрес на домен.агрессор, он не заметит подвоха.
Ответить
Чистяков Алексей
Антон, вы зря нас упрекаете. Во-первых: никакого хайпа нет. Битрикс - роскошный продукт, но такие уязвимости не могут существовать годами, при условии, что разработчик в курсе.
Во-вторых, если цель завести сайт конкурента в бан поисковой системы, клик клиента не требуется
Ответить
Александр Фалалеев
Для nginx я сделал так:

set $goto_redir 1;
if ($arg_goto ~ "https://ok.ru/clubbabai/") { set $goto_redir 0; }
if ($arg_goto ~ "https%3A%2F%2Fok.ru%2Fclubbabai%2F") { set $goto_redir 0; }
if ($arg_goto ~ "https://www.facebook.com/babai.ru") { set $goto_redir 0; }
if ($arg_goto ~ "https%3A%2F%2Fwww.facebook.com%2Fbabai.ru%2F") { set $goto_redir 0; }
if ($arg_goto ~ "https://vk.com/clubbabai") { set $goto_redir 0; }
if ($arg_goto ~ "https%3A%2F%2Fvk.com%2Fclubbabai") { set $goto_redir 0; }
if ($arg_goto ~ "https://www.instagram.com/clubbabai/") { set $goto_redir 0; }
if ($arg_goto ~ "https%3A%2F%2Fwww.instagram.com%2Fclubbabai%2F") { set $goto_redir 0; }
if ($arg_goto = "") { set $goto_redir 0; }
if ($goto_redir = 1) { return 403; }

Понятно из кода - то что нужно оставил - всё остальное запретил !
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.