Skip to main content

Navegadores atormentados por uma vulnerabilidade de redirecionamento aberto

Escrito por

Kyle Suero

Headshot of Aviad Hahami

Aviad Hahami

feature april fools

1 de abril de 2022

0 minutos de leitura

Se você chegou a esta publicação depois de dar uma olhada mais demorada no tuíte de Rick Roll que publicamos no Dia da Mentira… mandou bem! Se ainda não viu, confira o link que publicamos no Twitter e entre na brincadeira.


“Nunca clique em links inesperados!” Já ouviu alguém dizer isso? Praticamente todo mundo da área de tecnologia desconfia de links aleatórios — e por um bom motivo. De tempos em tempos, grandes vazamentos vêm à tona após campanhas direcionadas contra empresas de referência no setor. Uma das formas mais eficazes de “pescar” alguém ou roubar suas credenciais é explorar uma vulnerabilidade de redirecionamento aberto em um site aparentemente seguro e redirecionar as vítimas para um site malicioso. Embora tenhamos mencionado apenas o roubo de credenciais, vale lembrar que vulnerabilidades de redirecionamento aberto também podem abrir caminho para falhas mais sofisticadas.

O que são redirecionamentos abertos e como funcionam?

A forma básica de uma vulnerabilidade de redirecionamento aberto é simples. Um invasor cria uma URL para um site conhecido, como www.snyk.io, mas adiciona um parâmetro, uma string de consulta ou um componente de caminho que, ao ser enviado ao servidor, faz com que ele redirecione a solicitação (e o cliente) para uma URL ou endpoint supostamente pretendido. Como isso faz parte da estrutura básica de qualquer solicitação HTTP, a vulnerabilidade surge quando o servidor não verifica a URL de destino e simplesmente redireciona a solicitação às cegas. Nesse cenário, o invasor pode escolher para qual URL quer redirecionar as vítimas e enviar a elas o link malicioso. Um ataque desse tipo pode usar uma URL como [www.snyk.io?nextUR](http://www.snyk.io?nextURL=)L=//malicious.com. Se criarmos e estilizar malicious.com para que fique exatamente igual a www.snyk.io, será muito difícil para uma vítima desavisada distinguir os dois sites, e é provável que ela seja explorada pelo invasor.

Embora o impacto de um redirecionamento aberto possa não parecer um problema tecnicamente grave, o efeito que ele tem sobre a confiança de usuários fiéis é significativo. No fim das contas, as vítimas são clientes de um produto. Se um produto perde a confiança dos clientes, acaba perdendo espaço — os clientes vão embora e nenhum novo chega. Portanto, embora tecnicamente a vulnerabilidade não seja grave, ela é séria do ponto de vista do produto e da integridade, e pode afetá-lo por completo.

Para colocar mais café na nossa caneca do “está tudo bem”, é possível encadear uma vulnerabilidade de redirecionamento aberto com outras vulnerabilidades da web, como XSS, ampliando muito o impacto e criando uma ameaça potencialmente crítica. Em março de 2018, por exemplo, o Twitter recebeu um relato de redirecionamento aberto que resultava em XSS. Ao analisar o relato, você verá que o pesquisador descobriu que, ao explorar a vulnerabilidade de redirecionamento aberto, conseguia executar um ataque XSS. Combinado ao redirecionamento aberto, isso permitia comprometer totalmente os dados da vítima relacionados ao domínio, como cookies e armazenamento local. O Twitter recompensou o pesquisador com US$ 1.120 por essa descoberta.

Da mesma forma, a falsificação de solicitação do lado do servidor (SSRF) é uma vulnerabilidade que pode comprometer um servidor com facilidade. Como as vulnerabilidades de redirecionamento aberto podem ajudar um invasor a contornar mecanismos de filtragem, combinar as duas é como tomar uma cerveja em um jogo de beisebol: uma combinação perfeita! Se as solicitações feitas por um servidor usam dados fornecidos pelo usuário, esse é um alvo apetitoso para um invasor. Depois de entender como o endpoint em questão processa os dados de entrada, basta usar a criatividade e testar diferentes possibilidades até encontrar um caminho viável para uma SSRF. Ao encontrar um redirecionamento aberto, o invasor começa a manipular o parâmetro de URL em questão, tentando acessar endpoints e serviços internos críticos ou até mesmo alcançar recursos maliciosos externos!

Evite redirecionamentos abertos nas suas aplicações

Talvez você já esteja pronto para sair à caça de redirecionamentos abertos! Para resolver esses problemas, considere o seguinte: valide todas as entradas de usuários, especialmente quando dados controlados por eles forem refletidos na URL. Ative mecanismos robustos de autenticação nos serviços que não os habilitam por padrão. Use uma lista de permissões para restringir os possíveis destinos de um redirecionamento. Saiba mais sobre como corrigir esses problemas nesta folha de dicas da OWASP.

Para concluir, recomendamos que você não ignore as vulnerabilidades de redirecionamento aberto só porque elas parecem menos técnicas. O impacto sobre os clientes e os danos que podem decorrer disso podem ser graves. Deixar vulnerabilidades de redirecionamento aberto sem solução é como deixar portas e janelas abertas torcendo para que ninguém entre na sua casa sem ser convidado. Simplesmente não faz sentido!