Pesquisando na WEB vulnerabilidades XSS e arquivos flash, encontrei milhões de arquivos vulneráveis à esse tipo de ataque.
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!