邮件伪造漏洞
众测提交通过概率大一点,SRC不行
邮件伪造的原理
邮件伪造利用了 SMTP(简单邮件传输协议) 的设计缺陷,SMTP 协议本身不强制验证发件人的身份,导致攻击者可以伪造邮件的“发件人”字段(如 From 头),冒充他人发送邮件。
伪造方式:
- From 字段伪造:攻击者修改邮件的 From 字段,伪装成可信的发件人(如 [email protected])。
- Envelope From vs. Header From:
- Envelope From(MAIL FROM):SMTP 协议用于路由的发件人地址,服务器可能检查。
- Header From:显示在邮件客户端中的发件人地址,易被伪造且用户可见。
- 攻击者可使两者不一致,邮件客户端显示伪造的发件人。
邮件伪造漏洞的触发机制
邮件伪造通常依赖以下条件:
- 目标邮件服务器未配置防护机制:
- 未启用 SPF(Sender Policy Framework):SPF 记录定义了允许发送邮件的服务器 IP,若缺少或配置不当,攻击者可从任意服务器发送伪造邮件。
- 未部署 DKIM(DomainKeys Identified Mail):DKIM 通过数字签名验证邮件来源,缺少 DKIM 使伪造邮件难以被检测。
- 未实施 DMARC(Domain-based Message Authentication, Reporting, and Conformance):DMARC 结合 SPF 和 DKIM,指定如何处理未通过验证的邮件。无 DMARC 策略(如 reject 或 quarantine)会导致伪造邮件被接受。
- 开放中继(Open Relay):邮件服务器允许未经身份验证的第三方发送邮件,攻击者可直接利用。
- 弱验证的客户端或服务:某些邮件客户端或服务未严格检查邮件来源,显示伪造的发件人信息。
其实哪怕启用了SPF,但是标记方式是软标记,即~all,任然可以伪造邮件
攻击方式
dig -t txt www.ynu.edu.cn
运行 dig -t txt www.ynu.edu.cn 的作用是:
- 查询 www.ynu.edu.cn 域名的 TXT 记录。
- 返回结果会显示与该域名关联的文本记录(如果存在),例如:
- SPF 记录(如 “v=spf1 include:spf.example.com ~all”,用于邮件服务器验证)。
- 域名所有权验证字符串(如 Google、Microsoft 等服务要求的验证代码)。
- 其他自定义文本信息。
如果有spf记录,且是波浪号all,就可以伪造官方发邮件
利用kali自带sweak进行攻击
swaks --body "钓鱼邮件测试" --header "Subject:钓鱼测试" -t [email protected] -f "[email protected]"
sweak绕过一些邮件服务器检测
https://blog.csdn.net/y995zq/article/details/122963484
那这个漏洞怎么修复呢
先做一个基本的了解
“+”表示通过(Pass),接受来信
“-”表示拒绝(Fail),退信
“~”表示软拒绝(Soft Fail),不采取强制措施,接收来信并进行标记
“?”表示中立(Neutral),没有查询到记录,所以接收来信
所以添加SPF记录,规定好允许发送邮件的ip,并把~all改成-all即可修复