Куда идем?

Не так давно я столкнулся с действующим методом, который позволяет злоумышленнику отправлять спам от имени вашего сайта, используя форму обратной связи Joomla (форму контакта). Эта возможность не является уязвимостью, и вряд ли будет исправлена. В этой статье я расскажу о том, как такое стало возможно, и что нужно делать, чтобы защитить свой сайт.

Стандартная форма обратной связи Joomla

В Joomla есть довольно мощный и гибкий компонент, который называется «Контакты». Это стандартный компонент Joomla. Он есть на каждом сайте, т.к. устанавливается вместе с CMS. Данный компонент позволяет создавать и выводить на сайт категории контактов, контакты, формы обратной связи, позволяющие связаться с тем или иным контактом. Контакт – это, условно, пользователь – человек с сайта.

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

Отправка спама от имени сайта с использованием формы обратной связи Joomla

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

Форма обратной связи Joomla

Т.е. должны выполняться два условия:

  1. Форма не защищена от спам-ботов (не подключена reCaptcha или какой-либо другой способ защиты формы)
  2. В настойках контакта активирована опция «Отправлять отправителю копию письма». Благодаря ей в контактной форме появляется соответствующий чекбокс (см. рисунок выше).

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

  1. Спам-бот находит контактную форму. Защиты от спама нет – можно использовать.
  2. Спам-бот определяет, что сайт на Joomla, и что используется стандартная форма контактов. Удивительно, но есть боты, которые прекрасно умеют это делать.
  3. Спам-бот видит наличие чекбокса отправки копии письма отправителю.
  4. Спам-бот подставляет в поле Email адрес из собственной базы спам-рассылки, поле сообщения заполняет спамом. Как заполнены остальные поля неважно.
  5. Спам-бот отправляет форму и повторяет процесс многократно, подставляя все новые и новые адреса из собственной базы в поле Email.

Что происходит в результате? Joomla думает, что форму заполнил человек, который указал свой реальный адрес и хочет связаться с контактом с сайта. Поскольку галочка отправки копии письма установлена, то письма от сайта получают двое: человек, чей адрес привязан к контакту, и человек, чей адрес введен в поле Email.

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

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

Как защититься от этой уязвимости?

Как защититься от этой уязвимости? Элементарно. Сделайте так, чтобы одно из условий, описанных выше, не выполнялось, а именно:

  • Подключите reCaptcha к форме обратной связи Joomla (здесь есть инструкция)
  • Отключите в настройках контакта опцию «Отправлять отправителю копию письма»

После этого можете спать спокойно. =)

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

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.
Добавить комментарий

Комментарии  
0
Благодарю!

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

Примечания:
1. Чекбокс "отправить копию отправителю" не присутствует.
2. Название моего сайта и аккаунта в гугл заменил на "*******.**" и "*********" соответственно

-------------------------Текст письма:------------------------------------
This is the mail system at host web-relay-5.default-host.net.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

: host gmail-smtp-in.l.google.com[2a00:1450:4010:c06::1a]
said: 550-5.7.1 Unauthenticated email from mail.ru is not accepted due to
domain's 550-5.7.1 DMARC policy. Please contact the administrator of
mail.ru domain if 550-5.7.1 this was a legitimate mail. Please visit
550-5.7.1 https://support.google.com/mail/answer/2451690 to learn about
the 550 5.7.1 DMARC initiative. y2-v6si1681637lfe.6 - gsmtp (in reply to
end of DATA command)



---------- Forwarded message ----------
From: "Рифкат"
To: *********@gmail.com
Cc:
Bcc:
Date: Thu, 14 Jun 2018 04:11:07 +0300
Subject: eparhia.mk.ua: никола
Это сообщение было отправлено через раздел Контакты сайта http://www.*******.**.ua/:
Рифкат

Иришка
1
Александр, думаю проблема в том, каким образом у вас отправляется почта с сайта. Вот здесь есть подробное описание проблемы и способ ее решения: https://www.reg.ru/support/pochta_general/pochta-reg-ru/problemy-s-otpravkoy-pochty/pisma-s-sayta-vozvraschayutsya-s-oshibkoy-dmarc-policy
Если кратко, то письма должны отправляться сайтом с почтового ящика вашего домена, либо через SMTP-авторизацию.
0
Благодарю, Про это даже в мыслях не было: Отключите в настройках контакта опцию «Отправлять отправителю копию письма». Отключил-буду "посмотреть"
0
Это относится не только к стандартной форме, но и любой сторонней, компонентам и модулям. Ну и, из своего опыта на нескольких сайтах клиентов, встроенная контактная форма ещё как имеет уязвимости, даже с отключенной отправкой копии, и как видимой, так и невидимой капчей, спамеры умудрялись спамить через сайт, не взламывая сайт. В этом году столкнулся с этим, пришлось полностью отрубить встроенный компонент формы, и сделать свой модуль обратной связи, пока глухо как в танке, хостер больше не блочит сайты из за спам рассылок.
0
Виталий, Благодарю за полезную информацию!