SMTP Smuggling

Reading time: 4 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

基本信息

这种类型的漏洞最初是在这篇文章中发现的,文中解释了在最终确定电子邮件时,利用SMTP协议解释中的差异进行攻击是可能的,这允许攻击者在合法邮件的正文中走私更多邮件,从而冒充受影响域的其他用户(例如admin@outlook.com),绕过如SPF等防御措施。

为什么

这是因为在SMTP协议中,要发送的邮件数据由用户(攻击者)控制,攻击者可以发送特别构造的数据,利用解析器之间的差异,在接收方走私额外的邮件。请查看原始文章中的这个插图示例:

https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png

如何

为了利用这个漏洞,攻击者需要发送一些数据,使得出站SMTP服务器认为这只是1封邮件,但入站SMTP服务器认为有几封邮件

研究人员发现,不同的入站服务器将不同的字符视为邮件消息数据的结束,而出站服务器则不这样认为。
例如,常规的数据结束是\r\n.\r。但是如果入站SMTP服务器也支持\n.,攻击者可以在他的邮件中添加该数据并开始指示新的SMTP命令以走私它,就像在前面的图像中一样。

当然,这只有在出站SMTP服务器也不将这些数据视为消息数据的结束时才有效,因为在这种情况下,它将看到2封邮件而不是1封,因此最终这是在此漏洞中被利用的不同步。

潜在的不同步数据:

  • \n.
  • \n.\r

还要注意,SPF被绕过,因为如果你从user@outlook.com走私一封来自admin@outlook.com的邮件,发件人仍然是outlook.com

参考文献

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks