Vulnerabilidade de script entre sites da Alchemy

Jan 11 2023
O que é Alquimia?
Alchemy é a plataforma de desenvolvimento web3 mais popular. Ele ajuda os desenvolvedores a criar e dimensionar conectando instantaneamente seu dApp ao blockchain.

Alchemy é a plataforma de desenvolvimento web3 mais popular. Ele ajuda os desenvolvedores a criar e dimensionar conectando instantaneamente seu dApp ao blockchain.

Em 20 de agosto de 2022, a equipe CredShields identificou uma vulnerabilidade de segurança em um endpoint do Alchemy. Esta postagem de blog fornecerá uma visão geral da vulnerabilidade de segurança e as ações tomadas pela equipe Alchemy para resolvê-la.

Faça login com o recurso Alchemy:

O Alchemy tem um recurso que permite que aplicativos de terceiros façam login via alchemy. Ele permite que um aplicativo de terceiros obtenha acesso limitado a um serviço HTTP que seja em nome de um proprietário de recurso, orquestrando uma interação de aprovação entre o proprietário do recurso e o serviço HTTP ou permitindo que o aplicativo de terceiros obtenha acesso em seu próprio nome . É semelhante a entrar com o google ou com o recurso do Facebook, que é bastante comum na web2.

Vamos entender como funciona:
O usuário clica no botão “Sign in Alchemy” em um site ou aplicativo de terceiros.

  1. O site ou aplicativo redireciona o usuário para o endpoint Alchemy OAuth com uma solicitação de acesso às informações da conta Alchemy do usuário.
  2. O usuário é solicitado a entrar em sua conta Alchemy se ainda não estiver conectado.
  3. O usuário é solicitado a conceder permissão para o site ou aplicativo acessar as informações de sua conta Alchemy.
  4. Depois que o usuário concede a permissão, o Alchemy redireciona o usuário de volta ao site ou aplicativo com um código de autorização.
  5. O site ou aplicativo usa o código de autorização para fazer uma solicitação ao endpoint de token da Alchemy para obter um token de acesso.

Nós da CredShields estávamos tentando obter alguns fundos da rede de teste Goreli dehttps://goerlifaucet.com/. Tentamos autenticar via “Alchemy Login” e notamos a URL abaixo.

https://dashboard.alchemyapi.io/signup?a=goerli_faucet&redirectUrl=https://goerlifaucet.com

Como faltava qualquer forma de verificação de estado, estávamos confiantes de que poderíamos causar um redirecionamento de URL. No entanto, um redirecionamento de URL aberto só é uma preocupação se puder ser encadeado com outras vulnerabilidades. Então, procuramos a validação de entrada e ela estava faltando. Tentamos o valor de entrada javascript:alert(document.domain)para executar uma prova de conceito de script entre sites e funcionou. Portanto, obtivemos uma vulnerabilidade de script entre sites no Alchemy.

Vulnerabilidade de script entre sites da Alchemy

O que é script entre sites?

Os ataques Cross-Site Scripting (XSS) são um tipo de injeção na qual scripts maliciosos são injetados em sites benignos e confiáveis. Um invasor pode usar XSS para enviar um script malicioso a um usuário desavisado. O navegador do usuário final não tem como saber que o script não é confiável e executará o script. Como acredita que o script veio de uma fonte confiável, o script malicioso pode acessar quaisquer cookies, tokens de sessão ou outras informações confidenciais retidas pelo navegador e usadas com esse site. Esses scripts podem até reescrever o conteúdo da página HTML.

Reconhecimento:

Nós da equipe CredShields temos a missão de tornar a Web3 mais segura, então enviamos um e-mail para a equipe Alchemy. A equipe considerou o problema de segurança válido e corrigiu a vulnerabilidade em 22 de agosto de 2022.

Sobre o SolidityScan:

A equipe por trás do CredShields está construindo o SolidityScan. O SolidityScan é uma ferramenta avançada de verificação de contratos inteligentes que descobre vulnerabilidades e reduz os riscos no código. Solicite uma auditoria de segurança conosco e ajudaremos você a proteger seus contratos inteligentes. Inscreva-se para uma avaliação gratuita emhttps://solidityscan.com/signup

Siga-nos em nossas mídias sociais para atualizações relacionadas à segurança do Web3.
SolidityScan — LinkedIn | Twitter | Telegrama | Discórdia