В решениях Аспро выявлена критическая уязвимость, которая может привести к сбоям в работе корзины покупок, административной панели и другого функционала. Рассказываем, как избежать угрозы взлома сайта и что делать, если это произошло.
Обновление информации от 07.02.2025
Аспро выпустили патчер для исправления уязвимости. https://aspro.ru/kb/article/777/
PHP 7.4 или выше
Установленный Bitrix
Включенные модули `zip`, `session` и `file system`
Установка и запуск
Скачайте и распакуйте архив.
Разместите файл `fixit.php` в корневой директории сайта с установленным 1С-Битрикс.
Откройте браузер и перейдите по адресу:
https://ваш_домен/fixit.php
Проблема связана с файлами в папке /ajax/, расположенной в корневой директории сайта:
• reload_basket_fly.php;
• show_basket_fly.php;
• show_basket_popup.php.
Данная папка и файлы не являются стандартными для 1С-Битрикс. Данная уязвимость наблюдается в старых версиях решений от Aspro.
В связи с этим хостинг Рег.ру начал рассылать уведомления своим клиентам. После получения письма-уведомления от Рег.ру нельзя сказать на 100%, что ваш сайт взломан. Скорее всего, поддержка хостинга просто подстраховывается и делает рассылку, если на сайте обнаружены подозрительные файлы, или у вас есть открытые письма в поддержку хостинга по какому-нибудь другому вопросу.
В письме указано, что эти скрипты используют небезопасную функцию unserialize() в PHP, что позволяет злоумышленникам отправлять вредоносные POST-запросы. В результате возможен удалённый запуск команд (RCE), а также создание скриптами вредоносных файлов .htaccess, php.ini и с произвольными названиями вида 5af547f7703a9.php.
Рекомендуется незамедлительно связаться с разработчиком вашего сайта или специалистами 1С-Битрикс для полной проверки и исправления уязвимости.
Чтобы временно решить проблему самостоятельно, необходимо:
- Восстановить файлы сайта и базу данных из резервной копии, когда проблемы не наблюдалось.
- Удалить подозрительные файлы, если они сохранились после восстановления. Это файлы со случайными именами, .htaccess и php.ini в директории /www/вашsite.ru/ajax/.
- Проверить и исправить код в /include/mainpage/comp_catalog_ajax.php. Если он отличается от оригинальной версии, внесите исправления согласно инструкциям на форуме 1С-Битрикс:
https://dev.1c-bitrix.ru/support/forum/forum6/topic160668/?PAGEN_1=5 - Найти в директориях /www/вашsite.ru/ajax и /www/вашsite.ru/include в поиске по содержимому все файлы, содержащие строку unserialize, и заменить на безопасный unserialize [„allowed_classes“ => false]. Обычно это файлы: reload_basket_fly.php, show_basket_fly.php, show_basket_popup.php, comp_catalog_ajax.php. Это лишь временное решение проблемы, после которого нужно обращаться к разработчикам вашего сайта или непосредственно к технической поддержке 1C-Битрикс.
- Обновить 1С-Битрикс, все модули и шаблоны до последних версий. Затем переключитесь на PHP 8+ Перед началом обновления необходимо проконсультироваться с разработчиками вашего сайта или специалистами 1С-Битрикс для исключения последующих проблем с работоспособностью сайтов, так как некоторые компоненты могут быть несовместимы с новой версией ядра.
- Запустить модуль «Проактивная защита» в административной панели 1С-Битрикс. Он проверит корректность файлов .htaccess и выявит потенциально опасные файлы.
- Создать файл .htaccess в директории /www/вашsite.ru/bitrix/admin/ или при его наличии дополнить правилом ограничения доступа ко всем IP-адресам, кроме IP администратора. Используйте следующий синтаксис:
- Изменить пароли всех администраторов сайта.
Order Deny,Allow
Deny from all
Allow from YOUR_IP_ADDRESS
Если вы получили уведомление о наличии вредоносного кода и блокировке хостинга, выполните шаги с 1-4 и сообщите поддержке хостинга для снятия блокировки, чтобы в дальнейшем появилась возможность обновления CMS Битрикс и его модулей.