Не знаю насколько у Вас тотже вирус, что был связан с уязвимостью vote.
Я по исходникам накопал следующее кому интересно.
Атака была на файл uf.php с определенной структурой В параметрах структуры был определен класс CFileUploader.
Именно он и создавался из строки а потом проверялся на instanceOf Connector. Да ошибка выводилась. Но был вызван конструктор CFileUploader
Зачем битрикс делал логику загрузки на конструкторе - ума не приложу. Таким макаром загружалась папка в upload/tmp/ и на событии
onFileIsStarted прпатчивался агент, который и создавал бэкдур putin_hui...php Как детально не могу сказать, но мне удалось воспроизвести загрузку файла на потенциально уязвимой машине. Патч битров заключался в использовании функции is_a , которая не создает объект а проверяет его наличие.
По идее если гдето остался аналогичный вариант подгрузки то загрузить нефиг делать, но я надеюсь Ребята из битрикса знают что делают и дырок нигде нет )))). Рефлексия , конечно дело хорошее но мне кажется на публичке разрешать это использовать както не айс.
Мало того в коде проверки проверяется актуальность сессии с помошью функции check_bitrix_sessid() Но эта функция обходится на раз два с помощью опятьже открытого скрипта tools/composite_data.php Тут инфа по серверу, для чего делать его открытым не знаю. Кстати этот скрпит доступен на всех обновленных машинах.
Я по исходникам накопал следующее кому интересно.
Атака была на файл uf.php с определенной структурой В параметрах структуры был определен класс CFileUploader.
Именно он и создавался из строки а потом проверялся на instanceOf Connector. Да ошибка выводилась. Но был вызван конструктор CFileUploader
Зачем битрикс делал логику загрузки на конструкторе - ума не приложу. Таким макаром загружалась папка в upload/tmp/ и на событии
onFileIsStarted прпатчивался агент, который и создавал бэкдур putin_hui...php Как детально не могу сказать, но мне удалось воспроизвести загрузку файла на потенциально уязвимой машине. Патч битров заключался в использовании функции is_a , которая не создает объект а проверяет его наличие.
По идее если гдето остался аналогичный вариант подгрузки то загрузить нефиг делать, но я надеюсь Ребята из битрикса знают что делают и дырок нигде нет )))). Рефлексия , конечно дело хорошее но мне кажется на публичке разрешать это использовать както не айс.
Мало того в коде проверки проверяется актуальность сессии с помошью функции check_bitrix_sessid() Но эта функция обходится на раз два с помощью опятьже открытого скрипта tools/composite_data.php Тут инфа по серверу, для чего делать его открытым не знаю. Кстати этот скрпит доступен на всех обновленных машинах.