Category Archives: Wordpress

Removing virus (badware) from WordPress e protecting your blog

Note: I’m not responsible for damage to your installation. Use these tips at your own risk:)

These days I have two wordpress sites infected with malware! I suffered a bit to clean the site and decided to share the tips here that I was joining the road.

Basically, viruses create a “backdoor” taking advantage of some security flaw or bug in your installation. With this backdoor created, the virus has direct access to your site even after the bug fix or upgrade the system. It is like as if the virus had established an ssh account on your server and could perform almost any command in there.

In one case, the bug that allowed the installation of the virus was a theme that uses a library called timthumb.php. I Found the failure in this link and follow the steps there to solve the problem. This virus is installed through the timthumb.php and creates a backdoor. Through the backdoor, other viruses have settled on the site. I’ve fixed the file timthumb.php to remove the possibility of a new invasion.

This virus inserted an iframe on the home page of the site, causing the visitor to be redirected to a site with malicious code. In my case it was an iframe to a site called wordpress-counter.com

Then I had to remove the backdoor before removing the iframe code generator, because when removing the iframe itself, it was introduced again after 15 minutes through the backdoor.

Follow the tips this post and discovered the backdoor in the file wp-config.php. After the end of the traditional code of WordPress, it has about 100 blank lines and then the malicious code.

Then follow the tips this other post to eliminate the iframe generators.

Finally, I froze the files of my WordPress instalation. I accessed the site root via SSH and perform the steps below (note that this will block you from WordPress to automatically update the latest versions of the Dashboard):

To protect folders:

 find. -type d -exec chmod 755 {} \; 

To protect files:

 find. -type f -exec chmod 644 {} \; 

To prevent other users to view data from your database, which is possible in some shared hosting:

 chmod 750 wp-config.php 

To prevent further attacks modify any file on your system (files less plugins and themes):

 chmod u-w -R *
chmod u+w -R wp-content

References

http://blog.sucuri.net/2011/08/timthumb-php-security-vulnerability-just-the-tip-of-the-iceberg.html
http://markmaunder.com/2011/08/01/zero-day-vulnerability-in-many-wordpress-themes/
http://cantonbecker.com/work/musings/2009/how-to-search-for-backdoors-in-a-hacked-wordpress-site/
http://blog.unmaskparasites.com/2011/03/02/versatile-cc-attacks/
http://codex.wordpress.org/Hardening_WordPress

Adding a relative custom menu link in WordPress Nav Menu

In case you want to stop WordPress putting the “http://” in your custom menu link:

Edit your wp-includes/nav-menu.php

Change the followin line:

update_post_meta( $menu_item_db_id, ‘_menu_item_url’, esc_url_raw($args['menu-item-url']) );

To

update_post_meta( $menu_item_db_id, ‘_menu_item_url’, $args['menu-item-url'] );

That’s all

WordPress – Arquivos de tradução do plugin Configure smtp

Este plugin para wordpress permite que você configure com mais detalhes seu site para enviar emails inclusive através de sua conta GMAIL:

http://wordpress.org/extend/plugins/configure-smtp/

Faça o download do arquivo zip abaixo.

configure-smtp-pt_BR

Descompacte este arquivo.

Crie uma pasta lang dentro do diretório do plugin (depois de tê-lo instalado) e jogue os dois arquivos abaixo nesta pasta que você criou.

Lembre-se, jogue apenas os arquivos, não jogue a pasta que provavelmente foi criada quando você descompactou o arquivo zip.

Habilitando multiplos sites no WordPress 3

Estou criando um site WordPress ao estilo WordPress.com, ou seja, uma espécie de fazenda de blogs onde é possível ter mais de um blog com usuários compartilhados entre eles. Esta é função MULTISITE do WordPress, que antigamente vinha numa distribução diferente, chamada WordPress MU, e na versão 3.0 do WordPress já está embutida.

Para habilitar esta função você precisa adicionar seguinte linha no arquivo wp-config.php de seu site:

/** Ativar Multi Blogs **/
define(‘WP_ALLOW_MULTISITE’, true);

Depois é necessário acessar o menu Ferramentas -> Rede e seguir o passo a passo que é mostrado lá.

Eu tive alguns problemas de acentuação. O site que eu usei para ativar este recurso já possuía conteúdo e depois de ativar o multisite, a acentuação dos artigos ficou super bagunçada.

Adicionei então (depois de pesquisar e bater cabeça uns bons minutos) as seguintes linhas no wp-config.php pra resolver:
// ** MySQL settings ** //
define(‘DB_CHARSET’, ‘latin1′);
define(‘DB_COLLATE’, ‘latin1_general_ci’);

Só experimente adicionar essas linhas se você estiver com problemas de acentuação também :-}