Спам через AjaxForm
Одолел спам на этой неделе, в логах «POST /assets/components/ajaxform/action.php HTTP/1.0».
Формы с шаблонов убрал сoвсем, но спам продолжает идти со старыми параметрами/input, которые также были заменены.
Похоже на взлом AjaxForm, единственное упоминание о данной проблеме нашел на community.modx.com. Сталкивался кто-нибудь? Или пришло время переписывать все сайты на FetchIt?
Формы с шаблонов убрал сoвсем, но спам продолжает идти со старыми параметрами/input, которые также были заменены.
Похоже на взлом AjaxForm, единственное упоминание о данной проблеме нашел на community.modx.com. Сталкивался кто-нибудь? Или пришло время переписывать все сайты на FetchIt?
Комментарии: 13
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Сделайте сниппет chkbot:
Добавьте его в &preHooks:
А в файле assets/components/ajaxform/action.php на 23 строке добавьте:
Насколько я понял (php со словарем:)) там изначально проверка только на то что есть запрос ajax или нет, который получается можно подделать?
Прямые запросы на assets/components/ajaxform/action.php в логах остались, количество сократилось.
Имена и телефоны подставляют реальные из слитых баз, клиент сначала звонил по ним, некоторые отвечали что им звонят уже не первый раз из разных контор.
Похоже что заголовок Referer тоже подделывали при спаме.
SendIt пока что не хочется ставить. В общем и целом нравится FetchIt так же там готовая интеграция с AmoCRM которую легко и быстро настроил через FetchIt sucsess.
Надеюсь автор допилит этот момент из коробки. А так всем спасибо)
Похоже он отправляет не напрямую и создается сессия поэтому этот код в данном случаи не помог. При этом игнорирует hook spam а также required на поле phoneform. Похоже на некорректную работу плагина на сайте я хз…
Логи совпадающие со временем отправки
Это то что внутри &form=`callbackform`
Вызов
А не подскажите относительно движка Evolution. Мне кажется там такая же история с прямой отправкой через FormLister происходит?
По Evo, боюсь, не подскажу.
Буду пробовать SendIt, на новых точно уже без AjaxForm.
Это потому что прямые вызовы этого скрипта обходят любые валидации и хуки FormIt
… потому что они прописываются лишь в вызовах сниппета, а в action.php отсутствуют. Поэтому когда отправляются нормальные запросы с реальной страницы, всё хорошо, потому что код возвращаемый сниппетом содержит все валидаторы и хуки, которые надо выполнять. А через прямой юз action.php эта логика (валидаторы и хуки) недоступны, поэтому все запросы будут отправлены на сервер без security checks.
AjaxForm просто обязаны сделать фикс этой проблемы даже вопреки нежеланию (как log4j обязан был выпустить обновление своей уязвимости), или принять чей-нибудь фиксящий pull request. Это серьезнейшая дыра в безопасности и очень серьёзная, которую они своей глупостью оставили халатно — там итак было понятно, что валидаторы с хуками будут обходиться, а они понадеялись на авось…
Но при этом всегда обновляют компоненты у себя в /manager, когда там подсвечивается наличие обновлений (оранжевым).
И я один из них. А таких миллионы. И сайтов таких десятки или сотни тысяч.
Так что обновление необходимо. Чисто патч безопасности