Hoje vou mostrar novamente um exemplo de XSS que encontrei em um alvo real.
Vou percorrer qualquer programa que escolher no Bugcrowd.
Alvo: WorldStarHipHop
Bug Bounty Program: https://bugcrowd.com/medialab-vdp
O site que escolhi: worldstarhiphop.com
Após o registro, entro no painel do usuário. Eu posso mudar a foto do usuário, nome de usuário e e-mail. Primeiro de tudo, vou começar com a manipulação da foto.
Depois de selecionar a imagem, clico no botão salvar e capturo a solicitação.
Eu tive esse pedido. Ele salva a imagem que carreguei no Firebase chamada 1656878259.png. Mudo o final para 1656878259.html e envio a requisição.
Outro pedido veio. Existem 2 seções aqui. Uma parte GET e uma parte POST. Eu mudo a parte GET para 1656878259.html novamente. Em seguida, altero a parte POST na parte inferior da seguinte maneira.
Agora, existem 3 partes importantes aqui.
* Mudei a parte do nome para ....1656878259.html. Porque para verificar se posso fazer upload do arquivo html.
* A parte contentType era image/png, mudei para text/html. Se eu não o alterasse, o servidor da web o renderizaria como um arquivo de imagem, não html. Ele lida com essa parte em vez do Content-Type subjacente.
O conteúdo do arquivo: Apaguei o conteúdo do arquivo e mudei para <center><h1> TEST </h1></center> porque para verificar se o conteúdo html vai funcionar.
Estou enviando o pedido novamente.
Outro pedido vem antes de mim. Eu mudo a parte que é 1656878259.png para 1656878259.html e envio a requisição
Sim, como recebi uma solicitação GET, provavelmente a lancei. A próxima solicitação salva o arquivo que carregamos no firebase.
Vamos conferir agora.
O arquivo que carreguei foi levado para o painel do usuário
Sim, como você pode ver na 1ª foto, nós carregamos o arquivo com sucesso e vimos que o código html estava funcionando.
Na 2ª foto alterei o conteúdo do arquivo, cujo conteúdo alteramos com código html, com javascript, e deu certo.
Nota: O domínio que encontramos XSS é o CDN do domínio principal. Também é um domínio sem escopo que está fora dos domínios especificados no programa de recompensas de bugs.
No entanto, por mais diferentes que sejam, os nomes de domínio são semelhantes. Para dar um exemplo de ataque, podemos criar um campo de login falso e roubar as informações de login da vítima.
E por mais fora do escopo, os bugs encontrados são aceitos de acordo com seu nível de criticidade.
Obrigado por ler. Vejo você novamente sobre o assunto