Уязвимость в решениях от АСПРО. Как решить?

Буквально несколько дней назад столкнулись с проблемой у битриксовых сайтов, работающих на популярных решениях от АСПРО.

Вкратце, злоумышленники стали активно использовать обнаруженную ранее уязвимость. Это приводит к нестабильной работе интернет-магазина, перестают функционировать отдельные разделы, захламляются директории ненужными файлами и другие неприятные вещи.

Как пофиксить?

На примере решения АСПРО Максимум в файлах:

/ajax/reload_basket_fly.php
/ajax/show_basket_fly.php
/ajax/show_basket_popup.php

перед строкой

$arParams = unserialize(urldecode($_REQUEST["PARAMS"]), ["allowed_classes" => false]);

вставляем следующее:

if (!is_array(unserialize(urldecode($_REQUEST["PARAMS"]), ["allowed_classes" => false]))) { header('HTTP/1.1 403 Forbidden'); $APPLICATION->SetTitle('Error 403: Forbidden'); echo 'Error 403: Forbidden'; require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php'); die(); }

И в файле /include/mainpage/comp_catalog_ajax.php

перед строкой

$arIncludeParams = ($bAjaxMode ? $_POST["AJAX_PARAMS"] : $arParamsTmp);

пишем это:

if ($_POST["AJAX_PARAMS"] && !is_array(unserialize(urldecode($_POST["AJAX_PARAMS"]), ["allowed_classes" => false]))) { header('HTTP/1.1 403 Forbidden'); $APPLICATION->SetTitle('Error 403: Forbidden'); echo 'Error 403: Forbidden_1'; require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php'); die(); }

Скорее всего в других решениях код может отличаться, но суть думаю понятна.

Даже, если вас не затронула это проблема, то лучше для профилактики её пофиксить. Но вообще лучше обновить шаблон)

В моем тг канале больше подробностей о проблеме!

Кстати, тема взлома активно обсуждается на битриксовом форуме.

2
1 комментарий