Como lidar com um site WordPress invadido

Neste artigo, discutiremos os tipos mais comuns de invasões no WordPress, como identificá-las e os diferentes métodos para corrigi-las. Se você encontrar esse tipo de problema, recomendamos fortemente que entre em contato com um desenvolvedor web profissional para obter assistência adicional. Para mais orientações sobre como melhorar a segurança da sua conta de hospedagem, consulte este guia.

IMPORTANTE: Antes de fazer qualquer alteração, crie um backup completo do seu site. 

ATENÇÃO: Para reduzir o risco de futuras invasões ao WordPress, faça varreduras regulares na sua conta de hospedagem com uma ferramenta antivírus, remova arquivos maliciosos ou suspeitos e mantenha todos os plugins e temas do seu site atualizados para as versões mais recentes.

  1. Arquivos padrão ausentes

  2. Como substituir arquivos ausentes do WordPress

  3. Como substituir todos os arquivos padrão do WordPress

  4. Arquivos de tema ou plugin ausentes

  5. Redirecionamentos maliciosos

Arquivos padrão ausentes

Embora vários problemas diferentes possam levar ao desaparecimento ou alteração de arquivos padrão, a causa mais comum é a injeção de malware na sua instalação do WordPress. Felizmente, as ferramentas antivírus em nossos servidores Web e de Hospedagem podem detectar e colocar automaticamente em quarentena arquivos comprometidos.

Se os arquivos principais do WordPress forem infectados, você pode encontrar sintomas como:

  • Uma página em branco;

  • Um erro 500 Internal Server Error;

  • Um “Este site está enfrentando problemas técnicos” (erro introduzido no WordPress 5.2.2);

  • Ou outros erros semelhantes.

Para corrigir esse problema, basta seguir os passos abaixo.

Verifique o arquivo error_log do seu site

Para identificar o que causou o problema no seu site, revise o arquivo error_log. Esse arquivo registra todos os erros críticos encontrados pelo seu site.

Você pode localizá-lo na sua conta cPanel > menu “Gerenciador de Arquivos” > diretório raiz da sua instalação do WordPress. 

Depois de acessar a pasta raiz do domínio, procure pelo arquivo error_log. Se ele existir, siga estes passos:

  1. Clique com o botão direito no arquivo e selecione Visualizar:


  2. Dentro do log, você pode ver um erro como: “No such file or directory in…”, seguido pelo caminho do arquivo ausente. Isso indica que um arquivo necessário está ausente e está impedindo o funcionamento correto do site.

    Por exemplo:

    /home/cPuser/public_html/wp-settings.php

  3. Para restaurar o arquivo ausente, role até a seção "Como substituir os arquivos ausentes" deste guia.

Ative a opção display_errors do PHP

Se o arquivo error_log não estiver disponível no diretório raiz do seu site, você pode ativar a opção display_errors do PHP na sua conta cPanel. Essa configuração permite que mensagens de erro apareçam diretamente no seu site, facilitando a identificação do problema.

Importante: Por motivos de segurança, certifique-se de desativar o display_errors assim que terminar o diagnóstico.

Você pode ativar a opção PHP das seguintes maneiras:

  • Via php.ini 

Além do menu “Ajustes de PHP” do cPanel, você também pode ajustar certas configurações de um site diretamente através de um arquivo php.ini adicionando/editando as linhas correspondentes nele. 

Para ativar a opção display_errors, você precisará adicionar a seguinte linha ao arquivo:

display_errors=1

Você pode criar um novo arquivo php.ini na pasta raiz do site e adicionar a linha lá ou modificar o arquivo gerado pelo sistema seguindo os passos abaixo.

  1. Acesse sua conta cPanel e vá ao menu “Gerenciador de Arquivos”.

  2. Certifique-se de que a opção “Mostrar Arquivos Ocultos (dotfiles)” está ativada nas configurações:


  3. Navegue até o seguinte diretório:  /home/cPanel_user/.system-php/ini


  4. Selecione a versão do PHP atribuída ao seu domínio e depois selecione o diretório do domínio. Por exemplo, o caminho completo pode ser:

    /home/cPanel_user/.system-php/ini/7.0/testwebsite.com

  5. Clique com o botão direito no arquivo php.ini e selecione Editar.

  6. Adicione a seguinte linha ao arquivo:

    display_errors=1

  • Via .htaccess


Para ativar a opção display_errors do PHP via arquivo .htaccess, você precisará editar o arquivo dentro do diretório raiz do site no “Gerenciador de Arquivos” e adicionar a seguinte linha:

php_value display_errors 1

Os passos detalhados para localizar o arquivo .htaccess podem ser encontrados neste artigo. 

Após fazer suas alterações, clique em Salvar.

Como substituir arquivos ausentes do WordPress

O WordPress utiliza uma estrutura de arquivos simples e organizada, o que torna relativamente fácil restaurar arquivos ausentes ou corrompidos. Recomenda-se fortemente substituir os arquivos principais padrão, pois isso garante que quaisquer arquivos comprometidos por malware sejam totalmente restaurados. No entanto, prossiga com cautela: substituir certos arquivos ou pastas pode resultar em perda de dados se não for feito corretamente.

Siga os passos abaixo para substituir arquivos ausentes do WordPress:

  1. Acesse seu cPanel e vá até Softaculous Apps Installer.

  2. Crie uma nova instalação do WordPress em um subdiretório temporário. Para isso, clique no ícone WordPress e depois selecione Instalar:


  3. Você será redirecionado para a página de configurações da instalação. Lá, selecione o nome do domínio em questão no menu suspenso e insira o nome de uma subpasta no campo No Diretório.

    Neste exemplo, usamos a subpasta ” fix” para a instalação do WordPress:


    NOTA: Substituir todos os arquivos padrão atualizará sua instalação existente para a versão usada na instalação temporária “fix”, e misturar arquivos de versões diferentes pode causar conflitos no sistema e prejudicar a funcionalidade do site.

    Se for importante manter a versão atual do WordPress ou se você planeja substituir apenas arquivos específicos, verifique a versão do seu site dentro do arquivo /wp-includes/version.php e certifique-se de que a nova instalação utilize a mesma versão do WordPress:


  4. Você pode escolher a versão do WordPress para a nova instalação diretamente na janela de instalação:


  5. Depois que todas as configurações estiverem feitas, clique em Instalação Rápida ou role até o final da página de instalação e clique em Instalar. 

  6. Após a conclusão da nova instalação do WordPress, os arquivos aparecerão no “Gerenciador de Arquivos” > diretório raiz do seu domínio. Abra a pasta dando um duplo clique nela:


  7. Para substituir um arquivo ausente específico (por exemplo, wp-settings.php), localize esse arquivo dentro do diretório da nova instalação.

  8. Depois disso, mova o arquivo para o diretório raiz atual do seu site clicando com o botão direito no arquivo > clique em Mover > insira o caminho para a pasta raiz do seu site > clique em Mover arquivo(s): 


  9. Depois de concluído, o arquivo ausente foi restaurado e seu site deve carregar corretamente.

Como substituir todos os arquivos padrão do WordPress

No processo de substituição de todos os arquivos padrão do WordPress de um site, os passos 1-6 são os mesmos da seção “Como substituir arquivos ausentes do WordPress”. 

Após esses passos serem concluídos e a nova instalação do WordPress criada, para substituir todos os arquivos padrão na pasta raiz do seu site, siga estes passos:

  1. Abra a nova pasta raiz da instalação do WordPress:


  2. Dentro da nova pasta de instalação, exclua os seguintes arquivos e pastas:


    • .htaccess

    • wp-config.php

    • wp-content

      Esses arquivos e pastas contêm a configuração e o conteúdo do seu site e devem permanecer inalterados.

  3. Em seguida, mova os arquivos restantes para o diretório raiz do seu site principal. Para isso, use o botão Selecionar Tudo > clique em Mover > insira o caminho para a pasta raiz do seu site > clique em Mover arquivo(s):


  4. Seus arquivos principais do WordPress foram totalmente substituídos. Visite seu site para confirmar se tudo está carregando corretamente.

    Se o site ainda exibir erros, verifique novamente o error_log. Na maioria dos casos, problemas adicionais são causados por arquivos de temas ou plugins ausentes.

Arquivos de tema ou plugin ausentes

Arquivos de tema ou plugin ausentes podem ocorrer por vários motivos, mas a causa mais comum é o malware que infecta e remove componentes essenciais da sua instalação do WordPress. 

Se algum arquivo de plugin ou tema do WordPress estiver ausente, você pode encontrar:

  • Uma página em branco;

  • Um erro 500 Internal Server Error;

  • Um “Este site está enfrentando problemas técnicos” (erro introduzido no WordPress 5.2.2);

  • Uma página parcialmente carregada ou visualmente “quebrada”.

Para obter ajuda no diagnóstico do problema, consulte as seguintes seções deste artigo: Verifique o arquivo error_log do seu site e Ative a opção display_errors do PHP.

Você pode ver mensagens de erro semelhantes às seguintes no seu error_log ou diretamente no site:

PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...

Abaixo está um exemplo de erro causado por um arquivo de plugin corrompido ou ausente:


Para restaurar o arquivo ausente, basta reinstalar o tema ou plugin afetado.

NOTA: Arquivos functions.php ausentes em temas geralmente estão ligados ao malware wp-vcd.php, normalmente localizado no diretório /wp-includes. Antes de instalar um novo tema, remova wp-vcd.php se ele existir ou, se quiser garantir total segurança, substitua todos os arquivos padrão do WordPress conforme descrito anteriormente.

Redirecionamentos maliciosos

Em alguns casos, quando seu site é infectado por malware, ele pode começar a redirecionar visitantes para páginas suspeitas ou prejudiciais. Esse problema geralmente é causado por um plugin ou tema inseguro, que permite que invasores alterem URLs no banco de dados ou modifiquem arquivos do seu site.

NOTA: Nunca clique em nenhum dos links redirecionados. Fazer isso pode infectar seu computador pessoal com malware:


Para corrigir redirecionamentos maliciosos, siga os passos abaixo:

  1. Localize um arquivo de configuração do banco de dados do seu site - wp-config.php no seu cPanel > Gerenciador de Arquivos > pasta raiz do site. Abra o arquivo e encontre o nome do banco de dados do site nele:


  2. Depois, abra o banco de dados atribuído ao seu site no menu phpMyAdmin do seu cPanel clicando nele e navegue até a tabela wp_options (“wp_” é o prefixo padrão; o seu pode ser diferente):


  3. Revise os valores dos campos siteurl e home e, caso veja URLs maliciosos ou suspeitos ali, substitua-os pelo nome real do seu domínio: 


  4. Faça uma varredura no restante do seu banco de dados em busca de URLs maliciosos semelhantes e substitua-os conforme necessário. 

  5. Substitua temporariamente seu .htaccess atual por uma versão padrão limpa. O ideal é renomear o arquivo existente (por exemplo, .htaccess_old) e criar um novo do zero.

    Para renomear o arquivo, clique duas vezes nele > selecione Renomear na lista > insira um novo nome de arquivo > e pressione Renomear arquivo.

    Depois disso, para criar um novo arquivo, clique em + Arquivo > nomeie como .htaccess > e selecione Criar Novo Arquivo.

  6. Depois que o novo .htaccess for criado, edite-o clicando com o botão direito > selecione Editar na lista. Quando a janela de edição abrir, cole as regras padrão do WordPress a seguir no arquivo:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress

  7. Clique em Salvar Alterações.

Se o seu site continuar redirecionando, tente substituir todos os arquivos principais do WordPress.

Você também pode desativar temporariamente todos os plugins pelo painel do WordPress ou pelo banco de dados e tentar ativá-los um a um. Após ativar cada plugin, verifique o site para identificar qual deles está causando o redirecionamento malicioso.

É necessário um e-mail válido