Archivos Temporales, Grave Error de Seguridad en Joomla

Seguramente en la actualidad existe una infinidad de sitios cuyos administradores nunca se preocupan (o desconocen el grave problema de seguridad que pueden ocasionar) de los archivos temporales. En el peor de los casos, es posible tomar control completo de un servidor solamente por que no nos precupamos de borrar los temporales. ¿Como puede ser posible?…

Ojo, hay que tener más cuidado principalmente cuando se usa LINUX como servidor.

Esto es muy simple. Tomemos en este caso el ejemplo de un Joomla en un servidor LAMP (Linux Apache MySQL PHP). Al igual que la mayoría de CMS (sistemas de administración de contenido), Joomla almacena los datos de conexión a la base de datos (usuario, password, base de datos y otros parámetros) en el archivo de configuración.php y está ubicado en el mismo directorio que el index.php. Este archivo evidentemente no debiese ser visto desde Internet ya que contiene información sensible. Si en el mismo server se trabaja con phpMyAdmin, bastaría leer configuration.php para obtener las claves de acceso a la base de datos.

Luego un atacante un poquito más hábil cambiaría la clave de Administrador cifrada bajo md5 por un hash que él conozca, ingresaría a la plataforma de administración, instalaría un componente de Joomla o cualquier CMS que le permita manejar archivos.

¿Pero como podemos caer en tal desgracia? veamos el siguiente ejemplo:
http://sitio.com/web/. Este sitio web corre Joomla en el directorio /web/. Si consultamos http://sitio.com/web/configuration.php veremos que se muestra el configuration.php en blanco. Bien, solo bastaría verificar si existe una copia temporal de ese archivo en el directorio:

http://sitio.com/web/configuration.php~

Y listo!. Ya tenemos los passwords. Ahora, el servidor del ejemplo no corre phpMyAdmin y no es posible acceder a la base de datos desde Internet, por lo cual el ejemplo no afecta mayormente (mejor dicho no debiese afectar) a la seguridad de la máquina sitio.com

Lo que ocurre es que PHP entiende los archivos .php y los ejecuta de acuerdo a su sintaxis, pero los archivos .php~ (que son temporales), PHP no los conoce y por lo tanto los muestra en texto claro.
Pueden existir varios formatos de archivos temporales pero los más comunes son:

– .algo~
– .bak
– .1
– .old o .OLD
– .swp

Esto no es un problema exclusivo de Joomla, puesto que puede afectar a cualquier CMS.

Existen varias soluciones, pero la más simple sería crear una tarea programada (CRONTAB) que elimine diariamente estos archivos. Ejemplo:
——————————————————————————–
/etc/crontab
#Borrar todos los días a las 24 hrs los archivos temporales del directorio
0 0 * * * rm -R /var/www/html/*.*~
——————————————————————————–

Sin duda este problema claramente puede afectar a cualquier sitio web, es mucho más recurrente en aquellos basados en CMS.

Artículo tomado en parte de http://www.seguridad-informatica.cl/

1 comment so far

  1. miriam on

    Hola
    Soy administrador de sitios joomla y me hacia falta esta info gracias


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: