Cross Site Scripting (XSS) no User-Agent
Acompanhando o projeto de Honeypot do WASC (WASC Distributed Open Proxy Honeypot) deparamos com um post do Ryan Barnett comentando sobre o uso de tags de cross site scripting (XSS) no cabeçalho de User-Agent (WASC Distributed Open Proxy Honeypot Update – XSS in User-Agent Field – http://tacticalwebappsec.blogspot.com/2009/08/wasc-distributed-open-proxy-honeypot.html )
Ficamos curiosos em saber o que poderiamos ter em beneficio do uso desse tipo de ataque.
Inicialmente modificamos nosso User-Agent para <script>alert(‘oi’)</script> , nessa caso se o site estivesse vulnerável a algum script de verificação de browser falho receberiamos a mensagem de oi . Acessamos dezenas de sites conhecidos para ver o comportamento de um user-agent um pouco diferente mas sem sucesso, nada de anomalo ocorreu .
Numa segunda instância fui a sites que fazem verificação de versão de browser e descobrimos um projeto (vale lembrar que acessamos alguns poucos sites, esse certamente não seria o único vulneravel) que executa nosso javascript .
Scripts — Full Featured PHP Browser Detection & OS Detection – http://techpatterns.com/downloads/php_browser_detection.php
Continuando os testes e como citado no blog do WASC talvez a tentativa seja atacar os analisadores de logs web como webtrends, google analytics entre outros tantos existente no mercado.
Realizamos os testes iniciais contra sites que eram monitorados pelo sistema de analise de logs da locaweb e também google analytics. Ambos não tiveram algo anomalo, aparentemente eles “sanitizam” o user-agent como podem ver nas imagens abaixo .
Na nossa segunda etapa de testes, faremos testes utilizando o User-agent de várias maneiras diferentes, com hexa encode entre outros metodos novamente com base o sistema da locaweb e google analytics, e aproveitando também montaremos em nosso lab um awstats para ver como se comportara (temos em mente por volta de 30 User-Agent diferentes).
Sinceramente ainda não vemos o XSS no User-Agent como uma grande ameaça visto que não sabemos exato como os sistemas de analise de logs web fazem o parser do campo user-agent ou se o alvo é outro mas continuaremos a pesquisar e monitorar ambientes.
E você o que acha ? Quais seriam os alvos para o XSS no User-Agent ? Já pegou User-Agent estranho em seus logs ? Caso tenha alguma situação entre em contato conosco. E acompanhe o próximo post com os resultados dos testes .
N-Stalker Research Team