Skip to main content
XML-RPC (Remote Procedure Call) do Wordpress

XML-RPC (Remote Procedure Call) do Wordpress

O XML-RPC (Remote Procedure Call) é um protocolo de comunicação utilizado para permitir a interação entre sistemas diferentes na web. No contexto do WordPress, o XML-RPC é um recurso que permite que aplicativos externos se comuniquem com um site WordPress usando chamadas de função XML.

Say Hello
----------------
curl -A 'Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41' -d '<methodCall><methodName>demo.sayHello</methodName></methodCall>' https://seusite.com.br/xmlrpc.php

List Methods
----------------
curl -A 'Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41' -d '<methodCall><methodName>system.listMethods</methodName></methodCall>' https://seusite.com.br/xmlrpc.php

Com o XML-RPC do WordPress, é possível realizar várias operações remotas, como a criação de novos posts, a atualização de conteúdo existente, o envio de comentários, a obtenção de informações sobre o site e muito mais. Essa funcionalidade é útil para desenvolvedores e usuários que desejam interagir com um site WordPress sem precisar acessar o painel de administração.

Se o XML-RPC do WordPress não for usado corretamente, podem surgir algumas vulnerabilidades de segurança que podem ser exploradas por atacantes mal-intencionados. Algumas das principais vulnerabilidades associadas ao uso inadequado do XML-RPC são:

    • Ataques de força bruta: O XML-RPC permite que um invasor faça várias tentativas de autenticação, enviando solicitações de login com diferentes combinações de nomes de usuário e senhas. Isso pode permitir que um atacante descubra credenciais válidas por meio de tentativas e erros. Um ataque de força bruta usando XML-RPC no WordPress envolve um invasor tentando adivinhar as credenciais de login (nome de usuário e senha) através de repetidas tentativas usando solicitações XML-RPC.
      Aqui está uma descrição geral de como esse tipo de ataque pode ocorrer:

Check Credential
----------------
curl -A 'Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41' -d '<methodCall><methodName>wp.getUsersBlogs</methodName><params><param><value>admin</value></param><param><value>pass</value></param></params></methodCall>' https://seusite.com.br/xmlrpc.php

      1.  O invasor utiliza um programa ou script automatizado para enviar solicitações XML-RPC para o site WordPress alvo.
      2.  A solicitação XML-RPC é feita para o método "wp.getUsersBlogs" ou "wp.getUsers" que retorna informações sobre os usuários registrados no site.
      3. O invasor envia uma série de solicitações XML-RPC, tentando diferentes combinações de nomes de usuário e senhas em cada solicitação.
      4. O invasor recebe uma resposta do servidor para cada solicitação, informando se as credenciais fornecidas são válidas ou não.
      5. O invasor continua repetindo esse processo até encontrar uma combinação de nome de usuário e senha válida.

Ao automatizar esse processo, um atacante pode testar uma grande quantidade de combinações de nomes de usuário e senhas em um curto período de tempo, na esperança de encontrar uma correspondência válida e ganhar acesso não autorizado ao site WordPress.

    • Amplificação de ataques de negação de serviço (DoS): Os recursos do XML-RPC podem ser usados para amplificar ataques de negação de serviço, nos quais um invasor envia solicitações XML-RPC maliciosas para o site WordPress, consumindo seus recursos e tornando-o inacessível para os usuários legítimos.

DoS (Denial of Service)
---------------
curl -A 'Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41' -d '<methodCall><methodName>pingback.ping</methodName></methodCall>' https://seusite.com.br/xmlrpc.php

    • Execução remota de código: Se houver uma vulnerabilidade no código do XML-RPC ou em plugins/themes que façam uso dele, um invasor pode explorar essa vulnerabilidade para executar código malicioso no servidor do WordPress, permitindo o controle total do site.
      A execução remota de código via XML-RPC ocorre quando um invasor consegue explorar uma vulnerabilidade no XML-RPC do WordPress ou em algum plugin/theme que faça uso dele, permitindo que ele execute código malicioso no servidor do WordPress. Aqui está um exemplo de como esse tipo de ataque pode ser realizado:
      1. O invasor identifica uma vulnerabilidade conhecida no XML-RPC do WordPress ou em um plugin/theme específico que utiliza o XML-RPC.
      2. O invasor envia uma solicitação XML-RPC especialmente criada que explora essa vulnerabilidade. A solicitação pode conter instruções maliciosas, como código PHP disfarçado.
      3. O servidor WordPress recebe a solicitação XML-RPC e processa-a de acordo com o protocolo.
      4. Devido à vulnerabilidade explorada, o servidor executa o código malicioso contido na solicitação, permitindo que o invasor ganhe controle sobre o servidor.
      5. O invasor pode realizar várias ações maliciosas, como instalar backdoors, roubar dados, modificar o conteúdo do site, entre outros, dependendo dos privilégios adquiridos.

Esse tipo de ataque é particularmente perigoso, pois pode permitir ao invasor assumir o controle completo do servidor do WordPress, comprometendo todos os sites hospedados nele.

    • Vazamento de informações confidenciais: Se um atacante conseguir acesso a solicitações XML-RPC, ele pode obter informações confidenciais sobre o site, como nomes de usuário, senhas e conteúdo dos posts.

Devido a essas vulnerabilidades, é recomendado tomar algumas medidas para mitigar os riscos ao usar o XML-RPC. Isso inclui desabilitar o XML-RPC, se não for necessário, usando plugins ou configurações específicas, ou implementar autenticação e limitações de acesso rigorosas para impedir ataques de força bruta e uso indevido do protocolo.

Felipe Perin


Especialista em Segurança da Informação, Entusiasta em Software Livre, Palestrante e Consultor em Preservação de Acervos. Com expertise em SIEM, Pentest, Hardening, Honeypot, WAF - Web Application Firewall, ISO 27001, SDL - Secure Development Lyfecicle, e-GOV, e-PING (Padrão de Interoperabilidade), e-MAG (Padrão de Acessibilidade), e-PWG (Administração, Codificação, Redação Web e Usabilidade), 5S, Archivematica, Atom2 - Access to Memory, OJS - Open Journal System, Virtualização, Scan de Vulnerabilidades, Data Protection Office ou Encarregado de Proteção de Dados, Monitoramento de Ativos, Backup, Resposta à Incidentes de Segurança, Gestão de Risco e Conformidade, Software Livre, Log Management, Offshore Surveyor e Projetos Ecos sustentáveis (TI-VERDE)