之前只是听说了能伪造邮件后缀进行钓鱼......
后来偶然在其他师傅那边了解到邮件伪造漏洞......
我就就就就浅浅复现学习了一下!
特此对学习到的内容做一个梳理和记录~
首先,目前很多邮件用的是简单邮件传输协议SMTP进行通信,但是由于这个协议本身没有很好的安全机制,没办法鉴别寄件人是谁!这也让很多不法分子钻了空子进行钓鱼诈骗。
为了邮件的安全性,出现了SPF记录机制,以验证电子邮件的来源,那么今天的主题就是它——SPF安全机制的配置缺陷及漏洞利用话题。
我们先来了解一下SPF是什么,以及怎么用?
一、SPF概念及配置方式
SPF这个东西的全名是发送者策略框架 (Sender Policy Framework, SPF),是一个电子邮件验证的机制。SPF记录实际上是服务器上的一个DNS记录,原理大概如下:
假设邮件服务器收到一封邮件,来源IP是1.1.1.1,且发件邮箱为[email protected]。
为了验证发件人是不是伪造的,邮件服务器会去查询sysgeek.cn服务器上的SPF记录~
如果记录中允许了1.1.1.1这个IP为主机发送邮件,则认为合法,反之则根据SPF配置的策略进行对应的操作(退信/标记垃圾邮件)。
SPF的优点是:
1、可以根据自己的需求进行对应的策略配置,以达到检查电子邮件来源的目的。
2、它使得仅有被授权的发送者可以代表域名发送邮件,并且阻止其他所有未经授权的发送者这样做。
SPF的缺点是:
1、容易配置不当,且已存在绕过的方式造成邮件伪造。
2、电子邮件中有两类 From 地址:envelope From 地址和头域 From 地址。SPF 仅验证 envelope From 地址,但是并不验证头域 From 地址。
在使用SPF保护我们之前,我们需要先了解一丢丢SPF的基本配置概念。
--SPF机制--
匹配机制主要用于定义和指定可由该域名发送邮件的主机,SPF存在以下几类机制(machanism):
all | ip4 | ip6 | a | mx | include| exists | ptr
-All:表示所有 IP,肯定会命中。因此通常把它放在 SPF 记录的结尾,表示处理剩下的所有情况。
例如:
"v=spf1 -all" 拒绝所有(表示这个域名不会发出邮件)
"v=spf1 +all" 接收所有&#x