Gif Injection
Recebi um artigo nesta manhã, do PHP Classes, sobre uma falha de segurança em PHP usando imagens *.gif, onde um usuário poderia inserir códigos php malicioso na imagem.
Eu mesmo fiz alguns testes quanto a vulnerabilidade, que pode ser encontrada em websites que não verifiquem a extensão e conteúdo de um arquivo enviado por upload, verificando, no máximo, as dimensões da imagem.
A função getimagesize() retornará valores nulos caso usada em um arquivo que não seja uma imagem válida, assim, um website que verifique o tamanho de uma imagem antes de serví-la não aceitará normalmente scripts PHP em seus uploads… porém, caso o código PHP seja inserido ao final de uma imagem, a função getimagesize() ainda retornará as dimensões da imagem e o tipo mime corretamente.
Em meu teste utilizei uma imagem GIF de 15×15
. então eu renomeei o arquivo para brasil.gif.php e simplesmente inseri meu código php ao final do arquivo, utilizando um editor de texto simples, com o vi.
Assim, ao servir a imagem simplesmente apontanto o browser para o arquivo ‘brasil.gif.php’ o código php será executado normalmente, e a função getimagesize() ainda retornará o tamanho da imagem corretamente (achei interessante o modo como o Thunar, gerenciador de arquivos do Xfce4, descreve o arquivo em questão: ‘”brasil.gif.php” (403 B) Script PHP, Tamanho da Imagem: 15×15′).
Esta não chega a ser uma flaha de segurança muito problemática, visto que não é difícil de resolver, para isto, basta seguir algumas precauções de segurança:
- Renomeio os arquivos (verifique o tipo mime do arquivo, <? $size = getimagesize($filename); $mime = $size['mime']; ?> e renomeio com a extensão adequada);
- Não sirva diretamente as imagens enviando a url da imagem ao browser, utilize funções como readfile() para isso (envie o tipo de cabecalho e utilize uma função php para exibir a imagem, como <? header (’Content-Type: image/gif’); readfile ($image_path); ?>
Com pequenos cuidados como estes você não precisará se preocupar…
Fontes: http://www.phpclasses.org/blog/post/67-PHP-security-exploit-with-GIF-images.html, http://ha.ckers.org/blog/20070604/passing-malicious-php-through-getimagesize/
If you enjoyed this post, make sure you subscribe to my RSS feed!

Últimos Comentários