编码员征服安全。分享与学习系列--邮件标题注入
如今,网站和应用程序允许用户通过应用程序使用电子邮件发送反馈、约会提醒和其他各种信息,这很常见。通常情况下,这个过程是相当良性的,大多数人甚至不会考虑到它的潜在安全风险。
然而,像任何其他允许用户输入的设计元素一样,如果配置不当,这些看似无关紧要的功能可以被恶意用户操纵,以达到邪恶的目的。只需让用户有能力在输入栏中输入代码,然后由服务器错误地进行处理。突然间,一个电子邮件应用程序可以变成武器。
在这一集里,我们将学习。
- 攻击者如何触发邮件头的注入
- 为什么电子邮件标题注入是危险的
- 可以修复这个漏洞的技术。
攻击者如何触发邮件头注入?
虽然它不常被认为是可编程的,但大多数电子邮件联系应用程序或放入网站或应用程序的功能可以接受改变查询性质的输入。只是通常在用户将他们的信息,如他们的电子邮件地址,输入合同栏后,由服务器自动完成。然后,该程序会配置信息,添加适当的收件人,并使用其默认的电子邮件服务器将信息发送出去。
一个典型的电子邮件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是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
预定一个演示Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。


如今,网站和应用程序允许用户通过应用程序使用电子邮件发送反馈、约会提醒和其他各种信息,这很常见。通常情况下,这个过程是相当良性的,大多数人甚至不会考虑到它的潜在安全风险。
然而,像任何其他允许用户输入的设计元素一样,如果配置不当,这些看似无关紧要的功能可以被恶意用户操纵,以达到邪恶的目的。只需让用户有能力在输入栏中输入代码,然后由服务器错误地进行处理。突然间,一个电子邮件应用程序可以变成武器。
在这一集里,我们将学习。
- 攻击者如何触发邮件头的注入
- 为什么电子邮件标题注入是危险的
- 可以修复这个漏洞的技术。
攻击者如何触发邮件头注入?
虽然它不常被认为是可编程的,但大多数电子邮件联系应用程序或放入网站或应用程序的功能可以接受改变查询性质的输入。只是通常在用户将他们的信息,如他们的电子邮件地址,输入合同栏后,由服务器自动完成。然后,该程序会配置信息,添加适当的收件人,并使用其默认的电子邮件服务器将信息发送出去。
一个典型的电子邮件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 博客。
你认为你现在已经准备好寻找和修复一个电子邮件注入?请到平台上测试你的技能。[从这里开始]

如今,网站和应用程序允许用户通过应用程序使用电子邮件发送反馈、约会提醒和其他各种信息,这很常见。通常情况下,这个过程是相当良性的,大多数人甚至不会考虑到它的潜在安全风险。
然而,像任何其他允许用户输入的设计元素一样,如果配置不当,这些看似无关紧要的功能可以被恶意用户操纵,以达到邪恶的目的。只需让用户有能力在输入栏中输入代码,然后由服务器错误地进行处理。突然间,一个电子邮件应用程序可以变成武器。
在这一集里,我们将学习。
- 攻击者如何触发邮件头的注入
- 为什么电子邮件标题注入是危险的
- 可以修复这个漏洞的技术。
攻击者如何触发邮件头注入?
虽然它不常被认为是可编程的,但大多数电子邮件联系应用程序或放入网站或应用程序的功能可以接受改变查询性质的输入。只是通常在用户将他们的信息,如他们的电子邮件地址,输入合同栏后,由服务器自动完成。然后,该程序会配置信息,添加适当的收件人,并使用其默认的电子邮件服务器将信息发送出去。
一个典型的电子邮件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 博客。
你认为你现在已经准备好寻找和修复一个电子邮件注入?请到平台上测试你的技能。[从这里开始]
如今,网站和应用程序允许用户通过应用程序使用电子邮件发送反馈、约会提醒和其他各种信息,这很常见。通常情况下,这个过程是相当良性的,大多数人甚至不会考虑到它的潜在安全风险。
然而,像任何其他允许用户输入的设计元素一样,如果配置不当,这些看似无关紧要的功能可以被恶意用户操纵,以达到邪恶的目的。只需让用户有能力在输入栏中输入代码,然后由服务器错误地进行处理。突然间,一个电子邮件应用程序可以变成武器。
在这一集里,我们将学习。
- 攻击者如何触发邮件头的注入
- 为什么电子邮件标题注入是危险的
- 可以修复这个漏洞的技术。
攻击者如何触发邮件头注入?
虽然它不常被认为是可编程的,但大多数电子邮件联系应用程序或放入网站或应用程序的功能可以接受改变查询性质的输入。只是通常在用户将他们的信息,如他们的电子邮件地址,输入合同栏后,由服务器自动完成。然后,该程序会配置信息,添加适当的收件人,并使用其默认的电子邮件服务器将信息发送出去。
一个典型的电子邮件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 博客。
你认为你现在已经准备好寻找和修复一个电子邮件注入?请到平台上测试你的技能。[从这里开始]
资源
安全技能基准测试:简化企业安全设计
寻找有关 "按设计确保安全 "计划成功与否的有意义的数据是众所周知的难题。首席信息安全官(CISO)在试图证明投资回报率(ROI)和安全计划活动在人员和公司层面上的商业价值时,往往会面临挑战。更不用说,企业要深入了解自己的组织是如何以当前的行业标准为基准的,更是难上加难。美国总统的《国家网络安全战略》向利益相关者提出了 "通过设计实现安全和弹性 "的挑战。让 "按设计保证安全 "计划发挥作用的关键不仅在于为开发人员提供确保代码安全的技能,还在于向监管机构保证这些技能已经到位。在本演讲中,我们将分享大量定性和定量数据,这些数据来自多个主要来源,包括从超过 25 万名开发人员那里收集的内部数据点、数据驱动的客户洞察力以及公共研究。利用这些数据点的汇总,我们旨在传达一个跨多个垂直领域的 "按设计保证安全 "计划的现状。报告详细阐述了这一领域目前未得到充分利用的原因、成功的技能提升计划对降低网络安全风险的重大影响,以及消除代码库中各类漏洞的潜力。