Cuidado com o GeSHi do Joomla
Ao acessar o código fonte da página de um cliente meu a procura de uma classe CSS que estava precisando me deparei com um código malicioso inserido não sei de que forma dentro do arquivo geshi.php, mas afinal pra que serve esse arquivo dentro do Joomla?
Até ter tido esse problema não sabia da utilidade desse arquivo e também não sabia que ele faz parte dos plugins do Joomla. Antes de relatar o meu problema irei explicar um pouco sobre a funcionalidade desse plugin.
GeSHi é derivado do termo em inglês "Generic Sintax Highlighter", totalmente escrito em PHP, este aplicativo faz exatamente o que seu nome indica: é um destacador de sintaxe genérico.
o GeSHi não depende do Joomla (e vice-versa), é apenas um script PHP que, ao ser chamado, transforma um bloco de código fonte. Para ser incorporado ao Joomla, criou-se um plugin que, se estiver ativado, substitui o texto colocado entre as tags <pre> e </pre> com os devidos destaques de acordo com a linguagem de programação indicada. Na versão 1.0 do Joomla o arquivo tem o seguinte caminho "mambots/content/geshi.php" e na versão 1.5 está localizado no diretório "plugins/content/".
Compare os exemplos abaixo:
Sem o uso do GeSHi
Com o uso do GeSHi
Existem outros parâmetros que podem ser usados como a definição da linguagem (Javascript, XML, SQL, CSS, etc.) e ativação ou não do número de linhas no código.
Mas vamos ao relato do problema encontrado:
Acessando o código fonte de uma página verifiquei a ocorrência da palavra "cialis" e "viagra", fiz uma busca usando o componente de busca do Joomla e ele me listava vários artigos contendo essas expressões. Foi aí que dei um "grep" no servidor (comando linux que dentre várias utilidades também procura texto dentro de arquivos) e encontrei o maldito.
Segue abaixo o código malicioso. Note que substitui o caractere '<' por '[' e dei um espaço após as barras apenas para mostrar aqui.
[b class="fra">[a href="http:// web.ics.purdue.edu / ~acm / index.php">buy CIALIS 20mg[/a>[a href="http:// la.indymedia.org / calendar/">buy viagra online[/a>[/b>
julianoaugusto.com