Pular para o conteúdo

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

Descrição de vulnerabilidade XSS encontrada em arquivos flash existentes em diversos sites.
Luiz Vieira luizvieira
Hits: 22.715 Categoria: Linux Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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')
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Código ActionScript vulnerável
   2. Aspectos do funcionamentos em diferentes browsers
   3. Proteção de arquivos flash contra ataques XSS

Uma pequena introdução ao Assembly para Linux

Bypass de firewall com tunelamento por DNS

A Arte de HACKEAR Pessoas

Explorando celulares Android via Web com airbase-ng

Elevação de privilégios locais

Labrador, um detector de intrusos

Encapsulando BIND 9 e Apache 2 para obter maior segurança

Protegendo seu Linux de ataques de brute force via ssh

Backup gerenciável usando tar

Single Honeypot

#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

Entre na sua conta para comentar.