Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-93453 — 针对 CVE-2026-93453 的 Python PoC,该漏洞是 SOGo 密码重置链接投毒缺陷,通过攻击者控制的 Origin 头实现重置令牌拦截和账户接管。 | Kitploit
工具/GitHubGitHub/faceless0x7/cve-2026-93453
密码攻击漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试身份验证红队
GitHubfaceless0x7/cve-2026-93453

CVE-2026-93453

针对 CVE-2026-93453 的 Python PoC,该漏洞是 SOGo 密码重置链接投毒缺陷,通过攻击者控制的 Origin 头实现重置令牌拦截和账户接管。

查看仓库
1110小时46分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-93453 — SOGo 密码重置链接通过 Origin 头投毒

针对 SOGo 的一个漏洞的利用程序:SOGo 在向用户发送的密码重置邮件中,直接使用客户端提供的 Origin 头来拼装重置链接。攻击者只要知道受害者的登录名,就可以匿名发送一个带有可控 Origin 的找回请求;随后邮件中“密码重置”消息里的链接会指向攻击者的主机,而其中嵌入的 JWT 仍然是一个完全有效的找回令牌。受害者点击一次后,该令牌就会出现在攻击者的访问日志中,接着 POST /SOGo/changePassword 就能用它换取新密码——从而完全接管邮件、日历和联系人账户,且整个过程中无需任何身份验证。此外,邮件分支还跳过了 SOGoPasswordRecoveryEnabled 检查(该标志仅在 SecretQuestion 分支中被查询),因此即使运维人员认为找回功能已关闭,邮件途径依然可用。

记录: https://www.cve.org/CVERecord?id=CVE-2026-93453

受影响SOGo < 5.12.11 (≤ 5.12.10)
已修复5.12.11(SOGoPasswordRecoveryBaseURLs 允许列表)
前提条件受害者启用了 SecondaryEmail 找回模式;攻击者知道 userName;受害者点击邮件中的链接
影响账户接管

根本原因

root@kitploit:~
// UI/MainUI/SOGoRootPage.m:1374 (tag SOGo-5.12.10) — passwordRecoveryEmailAction
url = [NSString stringWithFormat:@"%@%@?token=%@",
          [[request headers] objectForKey:@"origin"],   // <-- raw client header
          [request uri],
          jwtToken];                                    // <-- valid HS256 JWT, 10 min TTL

带令牌的重置 URL 是 Origin + request URI + JWT,因此谁设置了该头,谁就决定了受害者的秘密将被发送到哪个主机。这是密码重置投毒(CWE-640 / CWE-601),而不是开放重定向:无论哪个主机将 JWT 带到那里,/SOGo/changePassword 都会接受它。

root@kitploit:~
// 5.12.11 — the fix: origins are validated against a mandatory allowlist
baseUrls = [[SOGoSystemDefaults sharedSystemDefaults] passwordRecoveryBaseURLs];
serverUrl = [[request headers] objectForKey:@"origin"];
if (!(baseUrls && [baseUrls count] > 0))          // unset config -> 403
if (![baseUrls containsObject:serverUrl])          // foreign origin -> 403

在 5.12.11 上,外部 Origin 会收到 403(“Password recovery email in error”);在 ≤ 5.12.10 上,同样的请求会返回 200 并且邮件会被发出——这一差异正是 check 所依据的判断点。

用法

root@kitploit:~
# non-destructive probe: canary user + foreign Origin, classify the reply
python3 CVE-2026-93453.py check https://sogo.example

# poison: dispatch the reset mail for the victim with your host in the link
python3 CVE-2026-93453.py poison https://sogo.example --user victim --origin https://attacker.example

仅使用标准库(Python 3.8+)。支持 --proxy、--insecure、--timeout、--no-color,以及用于非标准 SOGo 挂载点的 --prefix。

该 PoC 不需要攻击者基础设施:poison 只是让服务器发送该链接,而被投毒的主机就是你放入 --origin 中的任意内容。在存在漏洞的实例上,邮件中的链接会变成 https://attacker.example/SOGo/passwordRecoveryEmail?token=<valid HS256 JWT>——受害者点击的那一刻,令牌就会发送到你的主机。

check 使用一个不存在的金丝雀用户名,因此不会有邮件被投递到真实邮箱;200 = 邮件分支接受了外部 Origin(存在漏洞的特征),403 = 5.12.11 允许列表或未设置 SOGoPasswordRecoveryBaseURLs(不可利用)。若要进行确定性的自测,请对你拥有的账户执行 poison,并在自己的收件箱中查看链接主机。

参考资料

  • CVE 记录:https://www.cve.org/CVERecord?id=CVE-2026-93453
  • 修复版本:https://github.com/Alinto/sogo/releases/tag/SOGo-5.12.11
  • 修复提交:
    • https://github.com/Alinto/sogo/commit/382118a93b6925de2ce7f774abc1865ebea2dbba
    • https://github.com/Alinto/sogo/commit/04a3e9823889acaf6c247b224f5f7a0108f8f829
  • 存在漏洞的源码:https://github.com/Alinto/sogo/blob/SOGo-5.12.10/UI/MainUI/SOGoRootPage.m(`passwordRecoveryEmailAction`)

免责声明

仅供授权测试和研究使用。仅可对你拥有或已获得明确测试许可的系统使用。

下载工具