La popularidad global de WordPress lo convierte en un objetivo jugoso para todo tipo de piratas informáticos. Uno de los ataques más comunes en WordPress es el ataque XML-RPC. En este tutorial, aprenderemos qué es XML-RPC y cómo bloquear ataques XML-RPC.
¿Qué es el Ataque XML-RPC?
WordPress utiliza una llamada de ejecución remota llamada XML-RPC que se utiliza para intercambiar información entre sistemas informáticos a través de una red. XML-RPC es una llamada de procedimiento remoto que utiliza HTTP para el transporte y XML para la codificación.
Esta funcionalidad puede ser explotada para enviar miles de ataques de fuerza bruta en un corto tiempo.
Los hackers intentan iniciar sesión en el portal de administración de WordPress utilizando xmlrpc.php con cualquier nombre de usuario / contraseña. Xmlrpc.php permite a los hackers adivinar cientos de contraseñas con solo 3 o 4 solicitudes HTTP que conducen a una alta carga de la base de datos. Luego, tu sitio WordPress caerá aleatoriamente y mostrará el mensaje de error «error al establecer la conexión de la base de datos».
Cómo saber si XML-RPC está activo en mi WP?
Si no utilizas XML-RPC lo mejor es desactivarlo.
¿No estás seguro de si XML-RPC se está ejecutando actualmente en tu sitio web? Existe una herramienta en línea llamada XML-RPC Validator. Puedes ejecutar tu sitio WordPress a través de ella para ver si tienes habilitado XML-RPC. Si no lo tienes habilitado, verás un mensaje de error tal como se muestra a continuación:
“Sorry, we cannot find the RSD Endpoint link in the src code of the page. The RSD document contains the URL to the XML-RPC endpoint.”
La Historia de WordPress XML-RPC
XML-RPC estaba desactivado de forma predeterminada originalmente, tenías que ir a Configuración> Escritura> Publicación remota para habilitarlo. Desde la versión 3.5, la funcionalidad está activada por defecto.
XML-RPC Hoy
Después de realizar una serie de cambios, el tamaño de este archivo disminuyó de 83 kb a solo 3 kb, la mayor parte de la funcionalidad ahora está escondida en una pequeña clase ordenada. Esta clase se puede encontrar en wp-includes / class-wp-xmlrpc-server.php y contiene 48 funciones de WordPress, 7 funciones de Blogger, 6 funciones de MetaWeblog, 8 funciones de MovableType y 4 funciones para pingbacks.
XML-RPC en el Futuro
La llegada de la nueva API de WP verá la caída de XML-RPC. La API de WordPress ya se puede usar, pero requiere una activación de complemento y todavía está en su fase de prueba. No demasiado lejos en el futuro, será una parte del código central de WordPress, que es cuando comenzará a invadir el territorio XML-RPC.
Por el momento, hay algunas características que aún faltan en la API de WordPress, aunque es mucho más poderosa que XML-RPC.
Reconociendo un Ataque XML-RPC
1) Se muestra un error aleatorio de «Error al establecer la conexión de la base de datos» en el sitio WordPress.
2) Error de «memoria insuficiente» en la consola web.
3) Error «No se puede abrir el archivo sin dicho archivo / directorio» en el registro de errores del servidor web.
4) Error «POST /xmlrpc.php HTTP / 1.0» en el registro de acceso del servidor web.
¿Cómo detener un Ataque XML-RPC de WordPress?
3 opciones para tenerlo todo bajo control. Puedes elegir tu preferida.
Opción 1: Utiliza un complemento gratuito
Si no utilizas XML-RPC, tal vez lo mejor que puede hacer es deshabilitarlo. Hay un complemento gratuito llamado Disable XML-RPC que hará exactamente eso.
Opción 2: Bloquea manualmente el xmlrpc en el archivo .htaccess
Aquí puedes denegar el acceso al archivo xmlrpc de todos los usuarios. Simplemente pega el siguiente código en el archivo .htaccess en la raíz del documento del sitio web.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
# END protect xmlrpc.php
Opción 3: Editando archivos (nuestro favorito)
Nuestro método de protección predilecto consiste en realizar algunas modificaciones en ciertos archivos de WordPress para que no se encuentre el archivo XMLRPC.PHP y también para desactivar funcionalidades de XMLRPC para evitar que WordPress muestre algún error.
Lo primero que haremos es borrar o cambiar el nombre del archivo XMLRPC.PHP que encontraremos en la raíz de nuestra instalación:
Lo siguiente que debemos hacer es editar nuestro archivo wp-config.php de WordPress (también se encuentra en la raíz de la instalación) y debajo de la última línea colocaremos lo siguiente:
add_filter(‘xmlrpc_enabled’, ‘__return_false’);
Tal y como se muestra en la siguiente imagen:
Por último editaremos ell archivo funcions.php del theme que tenemos activado y al final debemos añadir el siguiente código:
add_filter( ‘xmlrpc_methods’, function( $methods ) {
unset( $methods[‘pingback.ping’] );
return $methods;
} );
Este método es bastante simple, pero para usuarios poco acostumbrados a WordPress y al mundo web puede ser algo difícil, por esa razón existen los dos métodos anteriores para desactivar el XMLRPC.PHP y evitar que nos puedan atacar.
Conclusión:
WordPress XML-RPC era un gran sistema, pero es hora de pasar a la API de WP, a pesar de que aún se encuentre en fase de prueba.
Debido a la compatibilidad con versiones anteriores, los desarrolladores aún deben saber sobre XML-RPC y ser capaces de usarlo adecuadamente para evitar hackeos o intrusiones no deseadas. Afortunadamente XML-RPC se volverá cada vez menos popular con el tiempo. Mientras tanto una simple prevención puede salvarte el día.