Сразу отмечу, что проблема актуальна только для шаблонов которые давно не обновлялись.
Признаки заражения сайта:
- В папке /ajax/ есть подозрительные файлы. Например "0fcaa11aaa.php". Для удобства отсортируйте файлы по дате изменения. Зараженные файлы будут скорее всего недавно изменены.
- В корне сайта можно найти папки с таким же рандомным названием, например "ba77ac" и т.д.
- Левые файлы в папке /include/mainpage/
- Папка /assets/images/ с зараженным файлом
- Сообщения от хостера
В некоторых случаях вирус уже успевает сгенерировать достаточно много .php или .html страниц по типу таких:
Как защититься:
- Удалить все найденные вирусные файлы
-
В файлах /ajax/show_basket_popup.php, /ajax/show_basket_fly.php и /ajax/reload_basket_fly.php заменить строку -
$arParams = unserialize(urldecode($_REQUEST["PARAMS"]))
добавив в функцию unserialize второй параметр ["allowed_classes" => false]Было
$arParams = unserialize(urldecode($_REQUEST["PARAMS"]));
Стало
$arParams = unserialize(urldecode($_REQUEST["PARAMS"]), ["allowed_classes" => false]);
- Тоже самое изменить в файле /include/mainpage/comp_catalog_ajax.php
- Удалить при наличии файлы: /ajax/error_log_logic.php, /ajax/js_error.php, /ajax/js_error.txt
- В файлах /form/index.php и /ajax/form.php заменить строку
elseif($form_id == 'TABLES_SIZE'):
наelseif($form_id == 'TABLES_SIZE' && false):
- Перезагрузить сервер (если есть возможность)
Результат:
По моим наблюдениям вариант выше с добавлением параметра к функции unserialize
не всегда подходит. Я рекомендую вместо unserialize
использовать json_decode
Было:
$arParams = unserialize(urldecode($_REQUEST["PARAMS"]));
Стало:
$arParams = json_decode(urldecode($_REQUEST["PARAMS"]), true);
Данный способ более правильный, т.к метод через unserialize
не безопасен в целом. Есть и минусы такого решения: часть функционала малой корзины и табов на главной(/include/mainpage/comp_catalog_ajax.php) могут перестать работать.
Все индивидуально. Нужно делать и тестировать. В остальном все отлично, вылечил уже более 10 проектов.
На данный момент (11 февраля 2025 г.) Компания Аспро выпустила патч https://aspro.ru/kb/article/777/