<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация

Устранение уязвимостей в модулях Битрикс

В мае 2025 года несколько сайтов наших клиентов, использующих CMS «1С-Битрикс», были взломаны и заражены вредоносным кодом.

Взлом произошел из-за уязвимостей в устаревших версиях модулей Битрикс:

  • Импорт из Excel (2.5.1 - 2.8.9)
  • Экспорт в Excel (0.8.6 - 1.2.2)
  • Экспорт/Импорт товаров в Excel (2.5.1 - 2.8.9)
  • Импорт из XML и YML (0.6.8 - 1.1.6)
  • Массовая обработка элементов инфоблока (0.5.9 - 0.7.7)
  • Многофункциональный экспорт/импорт в Excel (0.2.2 - 0.4.8)

Устранение уязвимостей

Если вы используете какие-то из этих модулей, рекомендуем как можно скорее обновить саму CMS и модули до последних стабильных версий. В новых версиях уязвимости уже закрыты, и злоумышленники не смогут ими воспользоваться.

Если у вас нет возможности установить обновления, закройте уязвимости при помощи патча. Для автоматического исправления перейдите в «Настройки» → «Инструменты» → «Командная PHP-строка» и вставьте следующий код:

Развернуть
$arFiles = array(
	'/bitrix/modules/esol.allimportexport/admin/cron_settings.php',
	'/bitrix/modules/esol.importexportexcel/admin/iblock_export_excel_cron_settings.php',
	'/bitrix/modules/esol.importexportexcel/admin/iblock_import_excel_cron_settings.php',
	'/bitrix/modules/esol.importxml/admin/import_xml_cron_settings.php',
	'/bitrix/modules/esol.massedit/admin/profile.php',
	'/bitrix/modules/kda.exportexcel/admin/iblock_export_excel_cron_settings.php',
	'/bitrix/modules/kda.importexcel/admin/iblock_import_excel_cron_settings.php',
);
$cnt = 0;
foreach($arFiles as $fn)
{
	$fn = $_SERVER['DOCUMENT_ROOT'].$fn;
	if(file_exists($fn))
	{
    	chmod($fn, 0775);
    	$c = file_get_contents($fn);
    	while(preg_match('#<\?.*//.*403 Forbidden.*\?>\s*<\?#Uis', $c, $m))
    	{
        	$c = str_replace($m[0], '<?', $c);
    	}
    	$c = preg_replace('/^.*<\?/Us', '<?', $c);
    	if(stripos($c, '403 Forbidden')===false || preg_match('/[^\/@]@?exec\(\$phpPath.\' \-v\'.*prolog_admin_before\.php/is', $c))
    	{
        	file_put_contents($fn, "<?if(isset(\$_REQUEST['path']) && strlen(\$_REQUEST['path']) > 0)
{
	header((stristr(php_sapi_name(), 'cgi') !== false ? 'Status: ' : \$_SERVER['SERVER_PROTOCOL'].' ').'403 Forbidden');
	die();
}
?>".preg_replace('/@exec\(\$phpPath.\' \-v\'/', '//$0', $c));
        	$cnt++;
    	}
	}
}
unlink(__FILE__);

echo 'patched:'.$cnt.'.';

Нажмите «Выполнить».

Если взлом уже произошел

Факт заражения может проявляться по-разному:

  • подмена контента на сайте или данных администратора;
  • запуск сторонних процессов на сервере,
  • подмена Cron-задач,
  • рассылка спама и др.

Если ваш сайт уже взломан, самый надежный способ устранить проблему — восстановить сайт из резервной копии на момент, когда заражения еще не было. 

После восстановления обязательно обновите CMS и все модули до последних версий.

Если у вас нет необходимых резервных копий и восстановление невозможно, для устранения последствий взлома выполните следующее:

  1. Просканируйте сайт на наличие вредоносных файлов и удалите их

Для этого можно воспользоваться внутренними инструментами Битрикса: «Рабочий стол» → «Настройки» → «Проактивная защита» → «Поиск троянов» → «Сканирование файлов». 

Если сканер обнаружит зараженные файлы, удалите их.

  1. Проверьте файлы .htaccess

Здесь тоже помогут инструменты Битрикса: «Рабочий стол» → «Настройки» → «Проактивная защита» → «Поиск троянов» → «Проверка .htaccess». 

Кликните на «Удалить всё и установить минимальный набор», чтобы удалить зараженные файлы и вернуть всё к стандартным настройкам.

  1. Проверьте задачи Crontab 

Подключитесь к серверу по SSH и выполните команду:

crontab -l

Она выведет список всех задач Cron. Если обнаружены подозрительные задачи — удалите их.

  1. Проверьте процессы на сервере

В первую очередь перезагрузите сервер. Обычно вредоносные процессы не запускаются заново после перезагрузки.

После подключитесь к серверу по SSH и проверьте список процессов командой htop, top или ps aux.

Если есть подозрительные процессы — завершите их с помощью:

kill [PID]

PID каждого процесса будет указан в выводе команд htop, top или ps aux.

  1. Проверьте учетные данные администратора

В админке Битрикса перейдите в «Настройки» → «Пользователи» → «Список пользователей» и убедитесь, что все данные, включая email, корректные.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев