Blog

Lunes, 04 Marzo 2019 21:32

XMLRPC.PHP de WordPress ¿que es y como protegerlo?

Escrito por 

 

Qué es el XMLRPC

El protocolo XMLRPC es un protocolo que utiliza XML para estructurar datos y el protocolo HTTP para la transmisión de esos datos estructurados en XML.

El protocolo XMLRPC fue desarrollado en 1998 por la empresa UserLand Software en colaboración con Microsoft, finalmente Microsoft considero que el protocolo XMLRPC era muy simple y lo convirtió en lo que ahora mismo se llama SOAP.

En WordPress, el protocolo XMLRPC actual como interfaz que actúa como API para aplicaciones externas y que nos permite interactuar con una instalación de WordPress utilizando aplicaciones o servicios externos.

Al funcionar como una interfaz externa es casi como una “puerta de entrada” por lo que esta puerta puede ser atacada fácilmente desde el exterior causando un alto consumo de recursos al ejecutarse una y otra vez el proceso de autentificación.

En WordPress el protocolo XMLRPC está gestionado por el archivo XMLRPC.PHP que puedes encontrar en la raíz de la instalación de WordPress:

Para comunicarse con una instalación de WordPress utilizando el protocolo XMLRPC debemos enviar peticiones HTTP mediante POST al archivo xmlrpc.php situado en la raíz de la instalación, con esto obtendremos una respuesta.

Si todo ha ido bien normalmente la respuesta obtenida es HTTP/1.1 200 OK.

Hasta la versión 3.5 WordPress traía de forma predeterminada el protocolo XMLRPC desactivado, desde la versión 3.5 viene activado por defecto, y ahí está el problema, ya que todas las instalaciones traen el protocolo XMLRPC activado y por defecto son vulnerables a ataques de denegación de servicio y fuerza bruta contra este protocolo.

 

Protección contra ataques al XMLRPC - Opción 1

 

Este método de protección consiste en realizar varias modificaciones en varios archivos de WordPress para que no se encuentre el archivo XMLRPC.PHP y también para desactivar las funcionalidades de XMLRPC para que WordPress no muestre ningún error por ello.

Lo primero que vamos a hacer 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 dirigirnos a 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 colocamos lo siguiente:

add_filter('xmlrpc_enabled', '__return_false');

 


Lo siguiente que debemos hacer es dirigirnos al archivo funcions.php del theme activado y al final debemos añadir el siguiente código:

add_filter( ‘xmlrpc_methods’, function( $methods ) {

   unset( $methods['pingback.ping'] );

   return $methods;

} );

 

Protección contra los ataques al XMLRPC – Opción 2

 

Consiste en usar el plugin XMLRPC Attacks Blocker, un plugin gratuito que puede ser descargado desde el repositorio de plugins de WordPress y que permite desactivar el XMLRPC.PHP casi por completo.

Puedes encontrar más información acerca de este plugin para WordPress en la siguiente dirección URL: https://es.wordpress.org/plugins/xmlrpc-attacks-blocker/

La ventaja que tiene usar este plugin es que podríamos incluso seleccionar un único usuario al que le permitiremos acceder mediante el protocolo XMLRPC, además, nos permite bloquear mediante el .htaccess a todas las direcciones IP que intenten utilizar nuestro archivo XMLRPC.PHP una vez desactivado el protocolo.

 

 

 

Leer 1837 times

Sobre CNERIS

CNERIS es una empresa constituida por jóvenes emprendedores procedentes de diferentes sectores del mundo de la información. Nuestro equipo está compuesto por programadores, administradores de sistemas, administradores de base de datos, diseñadores gráficos, maquetadores,