Vulnerabilidade em mais de 6 milhões de sites com flash

Descrição de vulnerabilidade XSS encontrada em arquivos flash existentes em diversos sites.

[ Hits: 21.425 ]

Por: Luiz Vieira em 04/02/2010 | Blog: http://hackproofing.blogspot.com/


Código ActionScript vulnerável



Pesquisando na WEB vulnerabilidades XSS e arquivos flash, encontrei milhões de arquivos vulneráveis à esse tipo de ataque.
Linux: Vulnerabilidade em mais de 6 milhões de sites com flash
Um exemplo de código AS vulnerável pode ser encontrado abaixo, tanto definindo o segundo parâmetro na função getURL (target), assim como sem definí-lo:

getURL(_root.clickTAG, "_blank");

Minhas pesquisas mostraram que em diferentes arquivos flash (em diferentes sites e sistemas de banner) diferentes parâmetros são utilizados para passar o endereço de um site ao arquivo flash em si. Além do clickTAG há também a utilização de URL e outros parâmetros.

getURL(_root.url, "_blank");

Os ataques ocorrem através da passagem de código XSS ao arquivo flash através do clickTAG, url ou outros parâmetros:

http://site/flash.swf?clickTAG=javascript:alert('XSS')

http://site/flash.swf?url=javascript:alert('XSS')

Há, também, arquivos flash que utilizam dois parâmetros, particularmente o clickTAG e TargetAS. Vejamos o exemplo abaixo:

getURL(_root.clickTAG, _root.TargetAS);

O ataque ocorre com a utilização dos parâmetros clickTAG e TargetAS:

http://site/flash.swf?clickTAG=javascript:alert('XSS')&TargetAS=

Após clicar no flash, a transferência da string para a função getURL ocorre, transmitida para o flash através do parâmetro apropriado. Dessa maneira é possível executar códigos Javascript, que são passados ao flash.

Ocorrência do problema

Existem vulnerabilidades no código ActionScript para a contagem de clicks em banners flash. E levando em consideração que tal tipo de código é utilizado há anos em diferentes sistemas de gerenciamento de banners na Internet (incluindo instruções, conhecida por todos, para o desenvolvimento de banners flash com a utilização do código AS vulnerável), então o problema está largamento difundido. Por exemplo, percebi há tempos atrás, tanto quanto me lembre, em diversos sites, que os mesmos utilizavam tais instruções AS vulneráveis.

Assim, o problema tem a ver com as recomendações falhas o desenvolvimento de banners flash, com a possibilidade de contagem de cliques. E isso ocorre com milhões de flash banners na Net.

Tais vulnerabilidades existem em diversos sistemas de banners, tanto globais quanto locais. Encontrei essas vulnerabilidades em sistemas tais como phpAdsNew, OpenAds e OpenX (em muitos sites que utilizam tais engines).

Há ainda muitos arquivos potencialmente vulneráveis na internet (de acordo com o Google):

filetype:swf inurl:clickTAG

Mais de 2.000.000 de resultados. Em 31/01/2010 havia cerca de 2.720.000, e continua crescendo...

filetype:swf inurl:url

Mais de 3.000.000 de resultados. Em 31/01/2010 havia cerca de 3.730.000, crescendo também...

No total, são mais de 6.000.000 (seis milhões) de arquivos flash potencialmente vulneráveis à ataques XSS. Nem todos os arquivos são vulneráveis, mas a maioria sim. E esses são apenas os arquivos flash indexados pelo Google, podendo haver muito mais deles.

Entre eles, existem mais de 10.000 sites governamentais, de instituições estaduais e federais.

Perceba que alguns desses flashs utilizam um métodos para proteção contra ataques XSS, que são mencionados abaixo. Porém esses são uma pequena porcentagem dos arquivos - a maioria utiliza código AS vulnerável.

Além disso, em 31/01/2010 encontrei 2.670.000 vulnerabilidades denominadas "Strictly social XSS" (i.e. vulnerabilidades XSS que não causam nenhum dano, apenas executam códigos Javascript que exibem mensagens na tela) no plugin WP-Cumulus para WordPress (no arquivo tagcloud.swf):

filetype:swf inurl:tagcloud.swf

Adicione esses 2.670.000 aos 3.730.000 + 2.720.000 e teremos 9.120.000 de arquivos flash vulneráveis!

    Próxima página

Páginas do artigo
   1. Código ActionScript vulnerável
   2. Aspectos do funcionamentos em diferentes browsers
   3. Proteção de arquivos flash contra ataques XSS
Outros artigos deste autor

Elevação de privilégios locais

Uma pequena introdução ao Assembly para Linux

Resenha do livro: Praticando a Segurança da Informação

Boot Linux - o que acontece quando ligamos o computador

Bypass de firewall com tunelamento por DNS

Leitura recomendada

AUDIT: Auditoria de arquivos no Linux para conhecer quem fez alterações em arquivos

Principais fontes de vulnerabilidade no Linux

VPN com openVPN no Slackware 11

Instalação do Snort + BASE no Debian Etch pelos fontes

SELinux na prática

  
Comentários
[1] Comentário enviado por brevleq em 04/02/2010 - 08:29h

Excelente artigo. Só fiquei com uma dúvida.
Os códigos que vc demonstrou são AS2, estas vulnerabilidades também estão presentes em AS3??

[2] Comentário enviado por luizvieira em 04/02/2010 - 09:59h

Sim brevleg: mesmo código, mesma falha, independente de versão.
[ ]'s

[3] Comentário enviado por removido em 04/02/2010 - 14:26h

caraca

muito bom o artigo

[4] Comentário enviado por andrezc em 04/02/2010 - 14:46h

Olha meu amigo, meus parabéns, ficou muito bom o seu artigo. Nota 10 !

[5] Comentário enviado por luizvieira em 04/02/2010 - 15:14h

Valeu douglas e junior!
[ ]'s

[6] Comentário enviado por sergiomb em 04/02/2010 - 22:03h

phpAdsNew, OpenAds e OpenX e tudo o mesmo produto ! que foi mudando de nome.

[7] Comentário enviado por Teixeira em 05/02/2010 - 02:46h

Ótimo artigo.
Existe uma infinidade de sites potencialmente perigosos (ou de resultados desagradáveis), em especial aqueles de natureza interativa, onde há algum diálogo ou apresentam algum evento do tipo "gimmick" esperando alguma ação por parte do usuário.
A grande maioria dos desenvolvedores web está usando ferramentas automáticas e não se preocupa em revisar o código em busca de bugs ou fragilidades.

[8] Comentário enviado por m4cgbr em 26/01/2011 - 02:26h

Excelente artigo!

[9] Comentário enviado por ricardolongatto em 10/01/2012 - 23:54h

Muito bom


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts