Спам через AjaxForm
Одолел спам на этой неделе, в логах «POST /assets/components/ajaxform/action.php HTTP/1.0».
Формы с шаблонов убрал сoвсем, но спам продолжает идти со старыми параметрами/input, которые также были заменены.
Похоже на взлом AjaxForm, единственное упоминание о данной проблеме нашел на community.modx.com. Сталкивался кто-нибудь? Или пришло время переписывать все сайты на FetchIt?
Формы с шаблонов убрал сoвсем, но спам продолжает идти со старыми параметрами/input, которые также были заменены.
Похоже на взлом AjaxForm, единственное упоминание о данной проблеме нашел на community.modx.com. Сталкивался кто-нибудь? Или пришло время переписывать все сайты на FetchIt?
Комментарии: 7
Они шлют прямыми запросами на assets/components/ajaxform/action.php.
Сделайте сниппет chkbot:
Добавьте его в &preHooks:
А в файле assets/components/ajaxform/action.php на 23 строке добавьте:
Сделайте сниппет chkbot:
<?php
$_SESSION['afchk'] = 1;
return true;
Добавьте его в &preHooks:
[[!AjaxForm?
&preHooks=`chkbot`
&hooks=`spam,email`
...
]]
А в файле assets/components/ajaxform/action.php на 23 строке добавьте:
if($_SESSION['afchk'] != 1){
echo $AjaxForm->success('Сообщение успешно отправлено.');
die();
}
unset($_SESSION['afchk']);
Благодарю, добавил проверку сессии, только сразу
Насколько я понял (php со словарем:)) там изначально проверка только на то что есть запрос ajax или нет, который получается можно подделать?
Прямые запросы на assets/components/ajaxform/action.php в логах остались, количество сократилось.
Имена и телефоны подставляют реальные из слитых баз, клиент сначала звонил по ним, некоторые отвечали что им звонят уже не первый раз из разных контор.
die('Сообщение успешно отправлено.');
до этого ставил редирект на главную (спам проскакивал пару раз). Сейчас уже 3 часа полет нормальный.Насколько я понял (php со словарем:)) там изначально проверка только на то что есть запрос ajax или нет, который получается можно подделать?
Прямые запросы на assets/components/ajaxform/action.php в логах остались, количество сократилось.
Имена и телефоны подставляют реальные из слитых баз, клиент сначала звонил по ним, некоторые отвечали что им звонят уже не первый раз из разных контор.
Сегодня началась новая спам атака на сайт. Накидали за день номеров 200 на почту через assets/components/FetchIt/action.php. Этот код помог (стоит FetchIt). Единственное что не пойму почему не сработал файл .htaccess который я вставил в assets/components/FetchIt и прописал там
SendIt пока что не хочется ставить. В общем и целом нравится FetchIt так же там готовая интеграция с AmoCRM которую легко и быстро настроил через FetchIt sucsess.
Надеюсь автор допилит этот момент из коробки. А так всем спасибо)
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?vision-hotel.ru [NC]
RewriteRule \.* - [F]
Похоже что заголовок Referer тоже подделывали при спаме. SendIt пока что не хочется ставить. В общем и целом нравится FetchIt так же там готовая интеграция с AmoCRM которую легко и быстро настроил через FetchIt sucsess.
Надеюсь автор допилит этот момент из коробки. А так всем спасибо)
Ну в общем я поторопился с выводами. Это помогла от спама который напрямую отсылал через action. Но не помог от этих сообщения который до этого были.
Логи совпадающие со временем отправки
Это то что внутри &form=`callbackform`
Вызов
config_prefer_imagemagick: 0
src: http
f: php
action: web/phpthumb
useRawIMoutput: 1
IMresizedData:
phoneform:
Похоже он отправляет не напрямую и создается сессия поэтому этот код в данном случаи не помог. При этом игнорирует hook spam а также required на поле phoneform. Похоже на некорректную работу плагина на сайте я хз…Логи совпадающие со временем отправки
109.248.15.180 - - [27/Mar/2024:10:07:17 +0300] "POST /assets/components/fetchit/action.php HTTP/1.0" 200 320 "https://site.ru/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0"
2a12:5940:12c5::2 - - [27/Mar/2024:10:07:23 +0300] "GET / HTTP/1.1" 301 173 "-" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0"
2a12:5940:12c5::2 - - [27/Mar/2024:10:07:23 +0300] "GET / HTTP/1.0" 200 19134 "-" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0"
2a12:5940:12c5::2 - - [27/Mar/2024:10:07:33 +0300] "POST /connectors/system/phpthumb.php HTTP/1.0" 200 158 "https://site.ru:443/" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0"
2a12:5940:12c5::2 - - [27/Mar/2024:10:07:33 +0300] "POST /assets/components/gallery/connector.php HTTP/1.0" 404 19134 "https://site.ru:443/connectors/system/phpthumb.php" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0"
2a12:5940:12c5::2 - - [27/Mar/2024:10:07:34 +0300] "GET /assets/components/gallery/cache/http.836565742893abde7371fbf19ddc8253.php HTTP/1.0" 404 19134 "https://site.ru:443/assets/components/gallery/connector.php" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0"
2a12:5940:12c5::2 - - [27/Mar/2024:10:07:41 +0300] "GET /assets/images/accesson.php HTTP/1.0" 404 19134 "https://site.ru:443/assets/components/gallery/cache/http.836565742893abde7371fbf19ddc8253.php" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0"
Это то что внутри &form=`callbackform`
<form action="[[~[[*id]]]]" method="post" class="p-4 p-md-5 border rounded-3 bg-primary bg-gradient">
<input type="hidden" name="nospam" value="">
<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>
Вызов
[[!FetchIt?
&form=`callbackform`
&preHooks=`chkbot`
&hooks=`spam, email`
&emailSubject=`Обратный звонок`
&emailTo=`marketing@site.ru`
&validate=`nospam:blank, phoneform: required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено!`
]]
По словам автора FetchIt использует тот же бэк, что AjaxForm, поэтому вряд ли переход на него спасёт от спама. А вот SendIt может помочь.
В соседней теме как раз из той же области походу.
Буду пробовать SendIt, на новых точно уже без AjaxForm.
Буду пробовать SendIt, на новых точно уже без AjaxForm.
Пока не могу проверить ни то, ни другое. Доберусь только завтра. Сайт вообще отключён уже, а спам идёт дальше!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.