编码员征服安全。分享与学习系列--邮件标题注入

2019年3月21日出版
作者:Jaap Karan Singh
案例研究

编码员征服安全。分享与学习系列--邮件标题注入

2019年3月21日出版
作者:Jaap Karan Singh
查看资源
查看资源

如今,网站和应用程序允许用户通过应用程序使用电子邮件发送反馈、约会提醒和其他各种信息,这很常见。通常情况下,这个过程是相当良性的,大多数人甚至不会考虑到它的潜在安全风险。

然而,像任何其他允许用户输入的设计元素一样,如果配置不当,这些看似无关紧要的功能可以被恶意用户操纵,以达到邪恶的目的。只需让用户有能力在输入栏中输入代码,然后由服务器错误地进行处理。突然间,一个电子邮件应用程序可以变成武器。

在这一集里,我们将学习。

  • 攻击者如何触发邮件头的注入
  • 为什么电子邮件标题注入是危险的
  • 可以修复这个漏洞的技术。

攻击者如何触发邮件头注入?

虽然它不常被认为是可编程的,但大多数电子邮件联系应用程序或放入网站或应用程序的功能可以接受改变查询性质的输入。只是通常在用户将他们的信息,如他们的电子邮件地址,输入合同栏后,由服务器自动完成。然后,该程序会配置信息,添加适当的收件人,并使用其默认的电子邮件服务器将信息发送出去。

一个典型的电子邮件POST请求可能看起来像这样。

POST /contact.php HTTP/1.1
Host: www.example.com

并在用户输入信息后生成这样的代码。

name=RealName&replyTo=RealName@ValidServer.com&message=YourAppointmentReminder

当黑客开始向过程中注入代码而不仅仅是他们的联系信息时,麻烦就出现了。这与SQL注入型攻击并无不同,但却是针对电子邮件应用程序的。一个被操纵的查询的例子是这样的,它将从你的应用程序向目标用户发送垃圾邮件。

name=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=Spammed 消息

为什么电子邮件标题注入是危险的?

根据恶意用户的技能和他们的意图,电子邮件标题注入攻击的严重程度可以从简单的烦人到高度危险。在严重程度的低端,他们可能会把自己的联系信息插入到发送到贵公司内部一个秘密或不公开的邮箱的外发信息的密送字段中,从而将其暴露给黑客。

更令人担忧的是,它可能允许他们完全控制你的电子邮件服务器,从你的组织发送垃圾邮件、网络钓鱼或其他攻击邮件。他们将不需要尝试和伪造电子邮件来自你的内部服务器的事实,因为它实际上是源自那里。如果你没有监测到这一活动,他们甚至可以将这一过程自动化,利用你的组织的服务器发送数百或数千封电子邮件,并以这样一种方式使其看起来像是你在实际煽动这一活动。

消除电子邮件标题注入问题

SQL注入和其他此类性质的攻击一样,消除恶意用户利用电子邮件头漏洞的可能性的关键是永远不要相信用户的输入。如果一个用户能够输入信息,即使它看起来是一个微不足道的过程,如输入他们的电子邮件地址,你必须假设最坏的情况。或者至少要假设最坏的情况是可能的。

应该对所有参数进行输入验证,这包括在向应用程序或网站添加电子邮件联系能力时。白名单可以用来专门启用你认为有效的流程和字段,而拒绝其他一切。事实上,大多数框架都有可用的库,可以用来帮助锁定那些需要的功能。这样做将防止恶意用户输入的任何代码或命令被你的服务器识别和处理。

关于邮件标题注入的更多信息

要进一步阅读,你可以看看OWASP对邮件头注入的看法。你还可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台可以培训网络安全团队成为最终的网络战士。要了解更多关于击败这一漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。

你认为你现在已经准备好寻找和修复一个电子邮件注入?请到平台上测试你的技能。[从这里开始]

查看资源
查看资源

作者

Jaap Karan Singh

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

编码员征服安全。分享与学习系列--邮件标题注入

2019年3月21日出版
作者:Jaap Karan Singh

如今,网站和应用程序允许用户通过应用程序使用电子邮件发送反馈、约会提醒和其他各种信息,这很常见。通常情况下,这个过程是相当良性的,大多数人甚至不会考虑到它的潜在安全风险。

然而,像任何其他允许用户输入的设计元素一样,如果配置不当,这些看似无关紧要的功能可以被恶意用户操纵,以达到邪恶的目的。只需让用户有能力在输入栏中输入代码,然后由服务器错误地进行处理。突然间,一个电子邮件应用程序可以变成武器。

在这一集里,我们将学习。

  • 攻击者如何触发邮件头的注入
  • 为什么电子邮件标题注入是危险的
  • 可以修复这个漏洞的技术。

攻击者如何触发邮件头注入?

虽然它不常被认为是可编程的,但大多数电子邮件联系应用程序或放入网站或应用程序的功能可以接受改变查询性质的输入。只是通常在用户将他们的信息,如他们的电子邮件地址,输入合同栏后,由服务器自动完成。然后,该程序会配置信息,添加适当的收件人,并使用其默认的电子邮件服务器将信息发送出去。

一个典型的电子邮件POST请求可能看起来像这样。

POST /contact.php HTTP/1.1
Host: www.example.com

并在用户输入信息后生成这样的代码。

name=RealName&replyTo=RealName@ValidServer.com&message=YourAppointmentReminder

当黑客开始向过程中注入代码而不仅仅是他们的联系信息时,麻烦就出现了。这与SQL注入型攻击并无不同,但却是针对电子邮件应用程序的。一个被操纵的查询的例子是这样的,它将从你的应用程序向目标用户发送垃圾邮件。

name=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=Spammed 消息

为什么电子邮件标题注入是危险的?

根据恶意用户的技能和他们的意图,电子邮件标题注入攻击的严重程度可以从简单的烦人到高度危险。在严重程度的低端,他们可能会把自己的联系信息插入到发送到贵公司内部一个秘密或不公开的邮箱的外发信息的密送字段中,从而将其暴露给黑客。

更令人担忧的是,它可能允许他们完全控制你的电子邮件服务器,从你的组织发送垃圾邮件、网络钓鱼或其他攻击邮件。他们将不需要尝试和伪造电子邮件来自你的内部服务器的事实,因为它实际上是源自那里。如果你没有监测到这一活动,他们甚至可以将这一过程自动化,利用你的组织的服务器发送数百或数千封电子邮件,并以这样一种方式使其看起来像是你在实际煽动这一活动。

消除电子邮件标题注入问题

SQL注入和其他此类性质的攻击一样,消除恶意用户利用电子邮件头漏洞的可能性的关键是永远不要相信用户的输入。如果一个用户能够输入信息,即使它看起来是一个微不足道的过程,如输入他们的电子邮件地址,你必须假设最坏的情况。或者至少要假设最坏的情况是可能的。

应该对所有参数进行输入验证,这包括在向应用程序或网站添加电子邮件联系能力时。白名单可以用来专门启用你认为有效的流程和字段,而拒绝其他一切。事实上,大多数框架都有可用的库,可以用来帮助锁定那些需要的功能。这样做将防止恶意用户输入的任何代码或命令被你的服务器识别和处理。

关于邮件标题注入的更多信息

要进一步阅读,你可以看看OWASP对邮件头注入的看法。你还可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台可以培训网络安全团队成为最终的网络战士。要了解更多关于击败这一漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。

你认为你现在已经准备好寻找和修复一个电子邮件注入?请到平台上测试你的技能。[从这里开始]

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。