El endpoint /backup.sql en una web WordPress no es un archivo legítimo del núcleo de WordPress, sino una señal de alerta de seguridad muy grave. Su presencia indica que un archivo de copia de seguridad de la base de datos ha quedado expuesto en un directorio público de tu servidor, y su nombre es fácil de adivinar para los atacantes.
¿Qué es y por qué es un peligro?
Es un archivo de copia de seguridad de la base de datos: Este archivo contiene una copia de toda la base de datos de tu sitio web.
Contiene información extremadamente sensible:
Normalmente incluye contraseñas (hasheadas), correos electrónicos de usuarios, publicaciones privadas, datos de clientes y detalles de configuración, si un atacante descubre y descarga este archivo, puede analizarlo offline para intentar descifrar las contraseñas de los usuarios, robar información confidencial o comprometer completamente tu sitio web.
¿Cómo pudo haber llegado ahí?
Hay varias causas comunes, entre ellas:
Fallo de un plugin de backups: Algunos plugins de respaldo, como Total Upkeep, WP Backup+ o InfiniteWP Client, han tenido vulnerabilidades que exponían archivos de copia de seguridad. También es posible que el plugin esté configurado para guardar los backups en una ubicación pública y no los proteja adecuadamente.
Error humano: Alguien con acceso al servidor pudo haber exportado manualmente la base de datos y dejado el archivo .sql en una carpeta accesible desde la web, sin usar un nombre de archivo aleatorio.
¿Cómo comprobar si está expuesto?
Por defecto la nuestra herramienta CoreAudit WP ya hace un escaneo del endpoint /backup.sql por lo que ya deberia detectar si tienes esta vulnerabilidad en tu web.
https://ejemplo.com/backup.sql.
Pero es rcomendable que analises tambien otras posibles rutas:
Es posible que debas revisar tu servidor y ver los directorios y los nombres de tus archivos .sql y entrar a esas URLs para ver si estan publicas ejemplo:
Si tienes una carpeta en tu servidor llamada "copias-DB", y dentro de esa carpeta tienes una copia de tu base de datos llama: "data-base.sql".
Entoces ve al navegador y busca la url para ver si esta expuesta ejemplo: https://ejemplo.com/copias-DB/data-base.sql.
Si el servidor responde con un archivo descargable, existe una vulnerabilidad crítica.
¿Cómo protegerlo?
Si encuentras este archivo en tu servidor, actúa rápido:
- Elimina el archivo inmediatamente: Borra el archivo
backup.sqldel servidor. - Revisa los logs de acceso: Verifica si el archivo ha sido descargado por IPs desconocidas para evaluar el alcance del posible incidente.
- Cambia todas las contraseñas: Si el archivo fue accedido, cambia las contraseñas de todos los usuarios del sitio, incluyendo la del administrador y la de la base de datos.
- Protege tu sitio para el futuro: Si usas un plugin de backups, asegúrate de que esté actualizado a la última versión y que guarde los archivos en una ubicación no accesible desde la web (por ejemplo, fuera de
public_html).
Puedes configurar tu archivo .htaccess para denegar el acceso a todos los archivos con extensión .sql.
Bloquear el acceso desde el servidor web
Si, por alguna razón, debes mantener archivos .sql dentro del árbol del sitio, puedes impedir su descarga.
En Apache (.htaccess):
En Nginx:
Revisar periódicamente
Comprueba que no existan archivos como: