WordPress es una de las plataformas de gestión de contenido más populares a nivel mundial. Su estructura y configuración son esenciales para su correcto funcionamiento y, por lo tanto, entender su arquitectura puede ser crucial para la seguridad. A continuación, se ofrece un análisis detallado basado en el documento proporcionado por cyberteach360 sobre «Hacking WordPress».
WordPress se puede instalar en sistemas operativos Windows, Linux o Mac OSX, aunque en este caso nos enfocaremos en una instalación por defecto en un servidor web Ubuntu Linux. Antes de la instalación, se requiere una pila LAMP completamente configurada (Linux, Apache, MySQL y PHP). Después de la instalación, todos los archivos y directorios de soporte estarán accesibles en el directorio raíz web ubicado en /var/www/html.
La estructura del directorio de una instalación por defecto de WordPress incluye varios archivos y subdirectorios clave necesarios para que el sitio web funcione correctamente, como se muestra en la salida del comando tree:
/var/www/html
├── index.php
├── license.txt
├── readme.html
├── wp-activate.php
├── wp-admin
├── wp-blog-header.php
├── wp-comments-post.php
├── wp-config.php
├── wp-config-sample.php
├── wp-content
├── wp-cron.php
├── wp-includes
├── wp-links-opml.php
├── wp-load.php
├── wp-login.php
├── wp-mail.php
├── wp-settings.php
├── wp-signup.php
├── wp-trackback.php
└── xmlrpc.php
El directorio raíz contiene archivos esenciales para la configuración y el funcionamiento de WordPress. Entre ellos:
index.php: La página de inicio de WordPress.wp-admin: Contiene la página de inicio de sesión para el acceso del administrador y el panel de control backend.xmlrpc.php: Facilita la transmisión de datos con HTTP como mecanismo de transporte y XML como mecanismo de codificación.El archivo wp-config.php contiene la información necesaria para que WordPress se conecte a la base de datos, incluyendo el nombre de la base de datos, el host, el nombre de usuario y la contraseña, claves de autenticación y sales, y el prefijo de las tablas de la base de datos.
wp-content: Directorio principal donde se almacenan plugins y temas. También alberga el subdirectorio uploads para archivos subidos.wp-includes: Contiene todo excepto los componentes administrativos y los temas. Aquí se almacenan archivos esenciales como certificados, fuentes, archivos JavaScript y widgets.WordPress define cinco tipos de usuarios con distintos niveles de acceso:
curl:curl -s -X GET http://example.com | grep '<meta name="generator"'curl -s -X GET http://example.com | sed 's/href=/\n/g' | sed 's/src=/\n/g' | grep 'wp-content/plugins/*' | cut -d"'" -f2curl http://example.com/wp-json/wp/v2/usersWPScan es una herramienta automatizada para escanear y enumerar componentes de WordPress. Comando de ejemplo para enumeración:
wpscan --url http://example.com --enumerate --api-token tu-api-token
Entender la estructura y la configuración de WordPress es esencial para asegurar el sitio web contra ataques. La enumeración y la explotación de vulnerabilidades pueden llevar a comprometer la seguridad del sitio, por lo que es crucial implementar medidas de protección adecuadas y mantener el software actualizado. Para una protección avanzada, herramientas como WPScan pueden ser de gran utilidad para detectar y mitigar amenazas potenciales.
