SuperAPI AI 工具集

testing-for-email-header-injection

安全与审计

查看项目

更新于 10-15 15:08

技能介绍

用途

本技能用于对 Web 应用的邮件相关功能进行安全测试,识别并验证邮件头注入(Email Header Injection)漏洞。适用场景包括:测试联系表单、反馈表单或“邮件转发给朋友”功能;评估密码重置邮件功能;测试订阅或通知邮件系统;对基于用户输入发送邮件的应用进行渗透测试;审计邮件相关 API 端点是否存在头部注入。

主要能力

该技能覆盖以下测试方向:

  • CRLF 头部注入:通过注入回车换行字符构造新的邮件头,尝试注入 Cc、Bcc、From、Reply-To 等头部。支持多种编码变体,包括 %0D%0A(CRLF)、%0A(LF)、%0D(CR)以及双重编码 %250A。
  • 自定义邮件内容注入:注入 Content-Type 与正文以覆盖邮件内容,注入 MIME 分段(multipart/mixed、boundary)以替换邮件正文,或覆盖 From 头实现邮件伪造、注入 Reply-To 用于钓鱼。
  • IMAP/SMTP 注入:通过邮件字段注入 IMAP 命令(如 EXAMINE INBOX)、SMTP 命令(如 RCPT TO)、SMTP VRFY 命令,以及测试 SMTP 中继滥用(注入多个 To 收件人)。
  • JSON 邮件 API 测试:针对 JSON 接口进行头部注入(在 to 字段使用 \nCc:)、数组注入以实现多收件人,以及邮件正文中的模板注入测试。
  • 结果验证:检查注入的 Cc/Bcc 邮件是否实际收到,查看邮件原始源码中的注入头部,测试应用是否可被用作垃圾邮件中继,并记录完整注入链(注入点、所需编码、影响)。

使用方式

工作流程分为六个步骤:

  1. 识别邮件注入点:定位会进入邮件头的表单字段(From 名称或邮箱、To/CC 字段、主题行、Reply-To),常见端点包括 POST /contact、POST /share、POST /invite、POST /api/send-email、POST /forgot-password。先用 curl 测试基本功能,再逐步注入。
  2. 测试 CRLF 头部注入:在 email、name、subject 等字段注入 %0A、%0D%0A、%0D 及双重编码等变体,尝试添加 Cc、Bcc 头。
  3. 注入自定义邮件内容:注入 Content-Type 与正文、MIME 分段、From 和 Reply-To 头。
  4. 测试 IMAP/SMTP 注入:在相应端点上测试命令注入与中继。
  5. 测试 JSON 邮件 API:使用 JSON 请求体测试 \n 注入、数组注入与模板注入。
  6. 验证发现:确认注入邮件是否送达、查看原始头信息、测试是否可作垃圾邮件中继,并记录注入链。

前置条件与工具

需要 Burp Suite 用于拦截和修改 HTTP 请求;理解 SMTP 协议与邮件头结构;掌握 CRLF 注入技术;准备测试邮箱账户接收注入邮件;具备触发邮件发送的应用功能访问权限;以及 SMTP 服务器日志访问权限用于监控注入尝试。涉及工具包括 Burp Suite(HTTP 代理)、swaks(SMTP 测试)、OWASP ZAP(自动扫描)、mailhog、smtp4dev(本地 SMTP 测试服务器)与 Nuclei(模板扫描)。

关键概念

CRLF 注入、头部注入、垃圾邮件中继、邮件伪造、MIME 操纵、SMTP 命令注入、换行字符(\r\n、\n、\r)。

常见攻击场景

  • 垃圾邮件中继:注入 BCC 头,借助目标 SMTP 服务器群发邮件。
  • 经联系表单钓鱼:修改 From 与 Reply-To 头,伪造来自目标组织的钓鱼邮件。
  • 密码重置劫持:在重置流程注入 CC 头以获取发给受害者的重置令牌副本。
  • 邮件内容覆盖:注入 MIME Content-Type 头,用恶意钓鱼内容替换合法正文。
  • 内部邮件滥用:利用头部注入向应用中通常无法访问的内部地址发送邮件。

输出格式

报告包含目标、注入点、所需编码,以及发现表格(字段、载荷、结果、严重程度)和修复建议。

修复建议

使用严格正则校验邮箱地址并拒绝换行字符;从所有邮件相关输入中剥离 \r、\n 及其编码变体;使用参数化邮件 API 将头部与数据分离;对邮件发送功能实施速率限制。

限制

具体工具版本、安装命令与运行参数资料中暂未提供;实际测试效果取决于目标应用的实现与配置。