Exploración de Directorios: Cómo Detectar y Solucionar Esta Vulnerabilidad en WordPress

Una vulnerabilidad relativamente común y muy seria en WordPress que muchos administradores de sitios web ignoran es la exploración de directorios.

Una simple búsqueda en Google revela millones de sitios con esta vulnerabilidad. Aproximadamente el 40% de los sitios que optimizo o donde reparo hackeos la tienen.

¿Será el tuyo uno de ellos? ¡Vamos a averiguarlo!

¿Qué es la exploración de directorios?

La exploración de directorios significa que los directorios en tu sitio pueden ser accedidos con un navegador web común como Chrome, Firefox, Opera, etc.

El directorio que normalmente está expuesto es wp-content. Aquí tienes archivos de temas, archivos de plugins y todas tus cargas (imágenes, videos, e-books, etc.)

Es una pantalla que muestra la exploración de directorios en WordPress.

Por qué esto es un problema

Primero, todos los archivos que están contenidos en estos directorios pueden ser descargados. Si almacenas archivos que vendes o que son privados, pueden ser descargados por cualquiera.

Temas y plugins comerciales pueden ser robados. Si almacenas copias de seguridad pueden ser descargadas.

Otro problema con la exploración de directorios es que, si tu directorio de plugins está expuesto, una persona malintencionada sabrá exactamente qué plugins están instalados.

Esto es potencialmente peligroso porque si hay un plugin vulnerable instalado, una simple búsqueda en Google podría informar a los ciberdelincuentes sobre ello.

Podría ser cuestión de tiempo antes de que tu sitio sea hackeado o infectado, a menos que tengas el buen hábito de mantener tus plugins, temas y WordPress actualizados a sus últimas versiones, por supuesto.

Si tu sitio almacena datos sensibles de usuarios como nombres, direcciones, números de teléfono, correos electrónicos, tarjetas de crédito, etc., entonces un incidente así podría también meterte en problemas legales serios.

Y todo por una vulnerabilidad como la exploración de directorios que se puede arreglar tan fácilmente.

Cómo saber si tu sitio web permite la exploración de directorios

Hay un par de formas fáciles de saber si tu sitio web es vulnerable. Prueba la siguiente consulta en Google:

"tudominio.com" "inurl:wp-content/"

Reemplaza tudominio.com con el dominio real de tu sitio web, por supuesto. Incluye las comillas en la consulta, esto le dirá a Google que solo busque esas palabras clave específicas.

Si tu sitio web es vulnerable, obtendrás resultados similares a estos:

Es una pantalla que muestra la exploración de directorios en los resultados de búsqueda en Google.

Si no hay resultados, no significa que tu sitio web no sea vulnerable, simplemente podría significar que Google no está indexando esos directorios. Ve a las siguientes URLs manualmente:

tudominio.com/wp-content
tudominio.com/wp-content/themes
tudominio.com/wp-content/plugins
tudominio.com/wp-content/uploads

Si obtienes páginas en blanco u otros errores cuando visitas esas URLs, entonces significa que la exploración de directorios probablemente no está habilitada en tu sitio.

Debido a que esos directorios pueden contener decenas o incluso cientos de subdirectorios, es difícil decir con certeza que ninguno de ellos es vulnerable a menos que los visites todos individualmente (lo cual te puede llevar toda una vida).

Afortunadamente, no tienes que visitar cada URL para asegurarte de que tu sitio no sea vulnerable. La siguiente solución protegerá cada directorio en tu sitio web.

Cómo arreglar la exploración de directorios

Necesitarás tener (o crear) un archivo .htaccess en el directorio raíz de tu WordPress. El directorio raíz es donde se encuentran los subdirectorios wp-admin, wp-content y wp-includes.

También puedes encontrar index.php, wp-config.php, wp-settings.php y otros archivos aquí. Si ya tienes un archivo .htaccess aquí, ábrelo (¡asegúrate de hacer una copia de seguridad primero!) y añade la siguiente línea al final del archivo: Options All -Indexes

El contenido del archivo puede ser similar a este:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Options All -Indexes

Asegúrate de no remover o cambiar otro código que exista en el archivo porque puedes afectar la funcionalidad de tu sitio.

Cómo editar el archivo .htaccess

Puedes editar .htaccess a través de un software de FTP, SFTP o SSH (como WinSCP) o un administrador de archivos de un panel de control (como cPanel).

También puedes bajar el archivo a tu dispositivo y editarlo con un editor de texto. Vuélvelo a subir ya que hayas hecho los cambios.

Si no tienes un archivo .htaccess en la carpeta raíz de tu WordPress, crea un archivo de texto en tu computadora y añade la línea: Options All -Indexes

Guarda el archivo y cámbiale el nombre a “.htaccess” (sin las comillas). Con tu programa FTP o SFTP favorito (o panel de control) súbelo al directorio raíz de tu sitio web.

El software FTP y SFTP también te permite crear nuevos archivos directamente en tu servidor.

Vía plugins

Hay plugins como Htaccess Editor que te permiten editar .htaccess directamente desde el panel de administración de WordPress.

También hay otros como File Manager que te permiten navegar los archivos de tu instalación de WordPress. A través de este plugin puedes acceder a y editar .htaccess.

Sin embargo, es más seguro y práctico usar FTP, SFTP, SSH o cPanel para editar el archivo.

Potenciales problemas

Si hay algún error en el sitio después de editar o crear un archivo .htaccess, puedes editar el archivo para remover el código que agregaste o eliminarlo por completo.

Si hiciste un respaldo del archivo antes de editarlo, lo puedes restaurar y cualquier error será eliminado.

Protección vía archivos index.html

Si no quieres (o no puedes) editar un archivo .htaccess y tu sitio web permite la exploración de directorios, otra forma de solucionar este problema es creando archivos index.html vacíos en los directorios expuestos.

Abre un bloc de notas (o tu editor de texto favorito) y guarda el archivo como index.html. No tienes que agregar nada a este archivo.

Sube el archivo index.html a los directorios expuestos. Podría haber docenas o incluso cientos de directorios expuestos, por lo que podría ser difícil protegerlos todos.

Al menos asegúrate de subir el archivo a los directorios wp-content, wp-content/uploads, wp-content/themes y wp-content/plugins.

Si usas otros directorios para almacenar archivos privados o copias de seguridad, sube el archivo index.html allí también.

Con el archivo index.html presente, cualquier persona que intente cargar un directorio verá una página en blanco.

Ayuda profesional

¿Todavía no sabes con seguridad si tu sitio permite la exploración de directorios? ¿Necesitas ayuda para solucionar el problema?

Mi servicio de Optimización de Seguridad de WordPress incluye la solución de este problema y muchas otras optimizaciones que mejorarán la seguridad de tu sitio web.

Avatar de WPLuis

Hola, me llamo Luis y soy experto en desarrollo, soporte, mantenimiento y seguridad web. Tengo más de 20 años de experiencia en la industria en los que he trabajado con clientes satisfechos de todo el mundo.

Deja un comentario