Correr javascript no IE a partir de uma imagem

No Internet Explorer, desde o 6 até ao actual 8, é possível correr código javascript ou html através de uma imagem especialmente criada com esse propósito.

Desde o tempos do IE 6 que a Microsoft sabe deste problema, mas nunca o chegou a corrigir por considerar uma “feature” e não um bug.

Aqui fica um exemplo de como é fácil explorar esta “feature”. Este exemplo não funciona no Firefox, nem Opera.

Primeiro temos de criar uma imagem. A maneira mais fácil será recorrer ao photoshop. Cria-se uma imagem qualquer e depois em File -> File info acedemos ao campo Copyright notice, onde lá colocamos o código javascript (talvez um iframe para ir buscar um trojan, who knows). Para simplificar a demonstração vamos apenas colocar o código:

<script>alert('Teste!');</script>

Outra maneira, mais rápida é colocar um header de imagem num editor de texto normal, bastando para isso colocar o seguinte no editor:

%137%74%80%71%13%10%26%10%00%00%00%13%00%00%00%01%00%00%00%01<script>alert('Teste!');</script>

Agora é só gravar o ficheiro com a extensão .jpg e abrir o ficheiro com o Internet Explorer.

Aqui fica um ficheiro com este exemplo para testarem.

Update: Ao que parece a Google suspendeu o site onde alojei a imagem de teste devido a esta violar as condições. Um bom sinal de que a Google trabalha de modo a dar alguma segurança aos seus serviços. Não me vou dar ao trabalho de realojar a imagem, poderão seguir as instruções acima para recriar a mesma e testarem. No entanto é de notar que esta terá de estar alojada online para resultar. Não pode ser aberta localmente.

Update 2: Mais sobre o assunto aqui e aqui.


 
 
 

7 Responses to “Correr javascript no IE a partir de uma imagem”

  1. Pedro Pais
    14. July 2008 at 12:49

    Confesso que compreendo que seja algo não desejável, mas não me parece uma falha de segurança.
    Na prática, qualquer código que possas colocar na imagem seria código que também poderia estar num site.

  2. rogeriopvl
    14. July 2008 at 16:38

    Certo, mas aqui a questão é que um hoje em dia, um site, as pessoas já desconfiam. Uma imagem é diferente, existe uma certa confiança associada a um ficheiro jpg gif ou pngl.

    Mas de facto não é nada assim de muito grave. Apenas é estranho o facto de ser considerado feature.

  3. Ricardo Almeida
    15. July 2008 at 15:11

    Era bom pores alguma refencia tipo: http://www.0×000000.com/index.php?i=605

  4. Ricardo Almeida
    15. July 2008 at 15:12

    E uma ainda pior “feature” da microsoft http://www.0×000000.com/index.php?i=608

  5. Pedro
    15. July 2008 at 18:11

    O google caçou-te!

    http://octestes.googlepages.com/teste.jpg
    This site has been disabled for violations of our Program Policies.

  6. rogeriopvl
    15. July 2008 at 20:08

    lol. obrigado Pedro por me teres indicado isso, não tinha reparado.

  7. rogeriopvl
    16. July 2008 at 21:59

    Ricardo,

    Desconhecia esse post. A fonte original foi uma discussão num fórum. Obrigado na mesma, vou colocar como link.

Leave a Reply