Email Injections
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F910640767-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FjzQiXe8oFAkPoN0MXcUG%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=5de16767&sv=1)
Use Trickest para construir e automatizar fluxos de trabalho facilmente, impulsionados pelas ferramentas comunitárias mais avançadas do mundo. Acesse hoje:
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Inject in sent e-mail
Inject Cc and Bcc after sender argument
A mensagem será enviada para as contas recipient e recipient1.
Inject argument
A mensagem será enviada ao destinatário original e à conta do atacante.
Inject Subject argument
O assunto falso será adicionado ao assunto original e, em alguns casos, o substituirá. Isso depende do comportamento do serviço de e-mail.
Mudar o corpo da mensagem
Injete uma quebra de linha dupla e, em seguida, escreva sua mensagem para alterar o corpo da mensagem.
Exploração da função mail() do PHP
O 5º parâmetro ($additional_parameters)
Esta seção será baseada em como abusar deste parâmetro supondo que um atacante o controla.
Este parâmetro será adicionado à linha de comando que o PHP usará para invocar o binário sendmail. No entanto, ele será sanitizado com a função escapeshellcmd($additional_parameters)
.
Um atacante pode injetar parâmetros adicionais para sendmail neste caso.
Diferenças na implementação do /usr/sbin/sendmail
A interface do sendmail é fornecida pelo software de e-mail MTA (Sendmail, Postfix, Exim etc.) instalado no sistema. Embora a funcionalidade básica (como os parâmetros -t -i -f) permaneça a mesma por razões de compatibilidade, outras funções e parâmetros variam muito dependendo do MTA instalado.
Aqui estão alguns exemplos de diferentes páginas de manual do comando/interface sendmail:
Sendmail MTA: http://www.sendmail.org/~ca/email/man/sendmail.html
Postfix MTA: http://www.postfix.org/mailq.1.html
Exim MTA: https://linux.die.net/man/8/eximReferences
Dependendo da origem do binário sendmail, diferentes opções foram descobertas para abusar delas e vazar arquivos ou até mesmo executar comandos arbitrários. Confira como em https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
Injetar no nome do e-mail
Observe que se você conseguir criar uma conta em um serviço com um nome de domínio arbitrário (como Github, Gitlab, CloudFlare Zero trust...) e verificá-la recebendo o e-mail de verificação no seu endereço de e-mail, você pode ser capaz de acessar locais sensíveis da empresa vítima.
Partes ignoradas de um e-mail
Os símbolos: +, - e {} em raras ocasiões podem ser usados para marcação e ignorados pela maioria dos servidores de e-mail.
Ex.: john.doe+intigriti@example.com → john.doe@example.com
Comentários entre parênteses () no início ou no final também serão ignorados.
Ex.: john.doe(intigriti)@example.com → john.doe@example.com
Bypass de whitelist
![https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F910640767-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FjzQiXe8oFAkPoN0MXcUG%252Fuploads%252Fgit-blob-e0409d6bf7e8fda7b189ad48f6ff8f6e0bdae16e%252Fimage%2520%28812%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=6c1984bf&sv=1)
Citações
![https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F910640767-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FjzQiXe8oFAkPoN0MXcUG%252Fuploads%252Fgit-blob-7191ffb696d3d2e2025cfd6ed6312370580a28ba%252Fimage%2520%28626%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=54738ef1&sv=1)
IPs
Você também pode usar IPs como nomes de domínio entre colchetes:
john.doe@[127.0.0.1]
john.doe@[IPv6:2001:db8::1]
Codificação de E-mail
Como explicado em esta pesquisa, nomes de e-mail também podem conter caracteres codificados:
Overflow PHP 256: A função
chr
do PHP continuará adicionando 256 a um caractere até que se torne positivo e então fará a operação%256
.String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @
O objetivo deste truque é terminar com uma injeção como RCPT TO:<"collab@psres.net>collab"@example.com>
que enviará o e-mail de verificação para um endereço de e-mail diferente do esperado (portanto, introduzindo outro endereço de e-mail dentro do nome do e-mail e quebrando a sintaxe ao enviar o e-mail).
Codificações diferentes:
Payloads:
Github:
=?x?q?collab=40psres.net=3e=00?=foo@example.com
Note o
@
codificado como =40, o>
codificado como=3e
enull
como=00
Ele enviará o e-mail de verificação para
collab@psres.net
Zendesk:
"=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com
O mesmo truque de antes, mas adicionando uma citação regular no início e a citação codificada
=22
antes do@
codificado e, em seguida, iniciando e fechando algumas citações antes do próximo e-mail para corrigir a sintaxe usada internamente pelo ZendeskEle enviará o e-mail de verificação para
collab@psres.net
Gitlab:
=?x?q?collab=40psres.net_?=foo@example.com
Note o uso do sublinhado como um espaço para separar o endereço
Ele enviará o e-mail de verificação para
collab@psres.net
Punycode: Usando Punycode, foi possível injetar uma tag
<style
no Joomla e abusar dela para roubar o token CSRF via exfiltração de CSS.
Tooling
Existe um script Burp Suite Turbo Intruder para fuzz essas combinações para tentar atacar formatos de e-mail. O script já possui combinações potencialmente funcionais.
Também é possível usar Hackvertor para criar um ataque de divisão de e-mail
Outras vulnerabilidades
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F910640767-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FjzQiXe8oFAkPoN0MXcUG%252Fuploads%252Fgit-blob-a00022f87ae26f6ec77a1f9318efe581dd21cc58%252Fimage%2520%281131%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=55abfd5b&sv=1)
SSO de terceiros
XSS
Alguns serviços como github ou salesforce permitem que você crie um endereço de e-mail com cargas XSS nele. Se você puder usar esses provedores para fazer login em outros serviços e esses serviços não estiverem sanitizando corretamente o e-mail, você pode causar XSS.
Tomada de Conta
Se um serviço SSO permitir que você crie uma conta sem verificar o endereço de e-mail fornecido (como salesforce) e depois você puder usar essa conta para fazer login em um serviço diferente que confia na salesforce, você poderá acessar qualquer conta. Observe que a salesforce indica se o e-mail fornecido foi ou não verificado, mas a aplicação deve levar em conta essa informação.
Responder Para
Você pode enviar um e-mail usando De: company.com e Responder Para: attacker.com e se qualquer resposta automática for enviada devido ao e-mail ter sido enviado de um endereço interno, o atacante pode ser capaz de receber essa resposta.
Taxa de Hard Bounce
Certos serviços, como AWS, implementam um limite conhecido como Taxa de Hard Bounce, tipicamente definida em 10%. Esta é uma métrica crítica, especialmente para serviços de entrega de e-mail. Quando essa taxa é excedida, o serviço, como o serviço de e-mail da AWS, pode ser suspenso ou bloqueado.
Um hard bounce refere-se a um e-mail que foi retornado ao remetente porque o endereço do destinatário é inválido ou não existe. Isso pode ocorrer por várias razões, como o e-mail sendo enviado para um endereço inexistente, um domínio que não é real, ou a recusa do servidor do destinatário em aceitar e-mails.
No contexto da AWS, se você enviar 1000 e-mails e 100 deles resultarem em hard bounces (devido a razões como endereços ou domínios inválidos), isso significaria uma taxa de hard bounce de 10%. Atingir ou exceder essa taxa pode fazer com que o AWS SES (Simple Email Service) bloqueie ou suspenda suas capacidades de envio de e-mail.
É crucial manter uma baixa taxa de hard bounce para garantir um serviço de e-mail ininterrupto e manter a reputação do remetente. Monitorar e gerenciar a qualidade dos endereços de e-mail em suas listas de mala direta pode ajudar significativamente a alcançar isso.
Para informações mais detalhadas, a documentação oficial da AWS sobre como lidar com bounces e reclamações pode ser consultada em AWS SES Bounce Handling.
Referências
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F910640767-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FjzQiXe8oFAkPoN0MXcUG%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=5de16767&sv=1)
Use Trickest para construir e automatizar fluxos de trabalho facilmente com as ferramentas da comunidade mais avançadas do mundo. Obtenha Acesso Hoje:
Last updated