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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-22557-check — 安全地检测 UniFi Network Application 控制器是否易受 CVE-2026-22557 影响 | Kitploit
工具/GitHubGitHub/bishopfox/cve-2026-22557-check
侦察漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试
GitHubbishopfox/cve-2026-22557-check

CVE-2026-22557-check

安全地检测 UniFi Network Application 控制器是否易受 CVE-2026-22557 影响

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-22557 漏洞评估工具

安全检测 UniFi Network Application 控制器是否存在 CVE-2026-22557 漏洞,且不会造成任何中断。请参阅 Bishop Fox 博客上的 完整报告。

描述

CVE-2026-22557 是 UniFi Network Application 客户强制门户中一个未经认证的路径遍历漏洞,允许远程攻击者以控制器进程用户的身份读取任意文件(CVSS 10.0)。该漏洞影响 10.1.x 分支上 UniFi Network Application 10.1.85 及更早版本,以及 10.2.x 和 9.0.x 分支上相应的早期版本。Ubiquiti 已在 10.1.89、10.2.97 和 9.0.118 中修复(SAB-062)。

客户门户的错误页面渲染器读取 page_error 请求参数,并将其作为门户资源加载器的相对路径直接使用,未进行任何验证。当查询站点上设置了 portal_customized: true(任何品牌化的强制门户,例如酒店、零售店或咖啡馆部署,都会使用此配置)时,加载器会针对磁盘上的门户目录解析该路径,且该路径可以逃逸出该目录。

本工具通过以下方式进行非破坏性漏洞测试:

  1. 从 /status 读取控制器报告的版本,并与 SAB-062 修复版本进行比较
  2. 确认客户门户在提供的 URL 上被分发
  3. 使用双重分支文件名,在 /guest/<site>/wechat/sign 上以 ../ 深度 1-8 探测 page_error 参数,以确定遍历是否触发
  4. 如果遍历触发,则额外读取一次非敏感的运行时目录文件(firmware.json),以确定自定义门户文件系统分支是否处于活动状态

该工具仅请求运行时目录文件作为分支活动判断依据。它不会读取凭据、TLS 材料、数据库状态或备份,也不会将任何文件内容写入标准输出或磁盘。仅打印判定结果。

  • 易受攻击的控制器:在查询站点的 portal_customized: true 情况下,在标定深度返回目录文件,确认 VULNERABLE。
  • 部分暴露的控制器:运行易受攻击的版本,但查询站点的 portal_customized: false,在标定步骤中触发遍历,但在确认步骤中未返回磁盘内容 → PARTIALLY EXPOSED。应用程序二进制文件仍然存在漏洞;即使该站点不可利用,也需要打补丁。
  • 已修复的控制器(10.1.89+ / 10.2.97+ / 9.0.118+):在所有深度拒绝遍历 → NOT VULNERABLE。
  • 不可达的站点或连接器返回 NOT EXPOSED。

安装

root@kitploit:~
git clone https://github.com/BishopFox/CVE-2026-22557-check
cd CVE-2026-22557-check

需要 Python 3.9+。该工具仅使用 Python 标准库,因此不需要 pip install 步骤。

使用方法

在 <TARGET> 处测试 UniFi Network Application 控制器。将工具指向能够达到控制器 Web UI 的任何 URL;漏洞处理程序在管理端口(默认 8443/TCP)以及专用客户门户端口(8843、8880)上均被分发。

root@kitploit:~
python3 cve_2026_22557_check.py <BASE_URL> [--site NAME]

默认站点标识为 default。配置了多个站点的 UniFi 部署应对每个站点以 --site <name> 重新运行工具。只要任何一个站点的 portal_customized: true,控制器就存在可利用风险。

以下示例使用 --brief 输出每个主机一行结果。若不加 --brief,则会显示完整的标题、逐步进度以及包含建议修复措施的结果块。

示例:易受攻击的控制器

控制器运行易受攻击的版本,并且查询站点的自定义门户前提条件已满足,因此未经认证的读取路径可达。

root@kitploit:~
$ python3 cve_2026_22557_check.py https://192.168.1.100:8443 --brief
[VULNERABLE]        https://192.168.1.100:8443 site=default

示例:部分暴露的控制器

控制器运行易受攻击的版本,但查询站点未启用 portal_customized: true,因此该站点的磁盘读取前提条件不满足。应用程序二进制文件仍然需要打补丁;同一控制器上的其他站点可能仍处于可利用状态。

root@kitploit:~
$ python3 cve_2026_22557_check.py https://192.168.1.100:8443 --brief
[PARTIAL]           https://192.168.1.100:8443 site=default

示例:已修复的控制器

控制器运行已修复版本(10.1.89、10.2.97、9.0.118 或更高),因此在所有查询深度上遍历均未触发。

root@kitploit:~
$ python3 cve_2026_22557_check.py https://192.168.1.200:8443 --brief
[NOT VULNERABLE]    https://192.168.1.200:8443 site=default

选项

root@kitploit:~
--site NAME       UniFi 站点标识,用于探测(默认:"default")
--max-depth N     最大 ../ 遍历深度(默认:8)
--no-tls-recon    跳过 TLS 证书 subject/SAN 显示
--no-color        禁用 ANSI 颜色输出(也支持 NO_COLOR 环境变量)
--timeout N       每个请求的超时时间,单位秒(默认:20)
--brief           打印单行结果,不显示标题或步骤

退出码:0 表示 VULNERABLE,1 表示部分暴露/不易受攻击/未暴露,2 表示传输错误。

前提条件

只有在满足以下条件时,工具才能返回 VULNERABLE 判定:

  • 目标运行易受攻击的 UniFi Network Application 版本(10.1.x 分支上的 10.1.85 或更早,或 10.2.x/9.0.x 分支上相应的早期小版本)。
  • 客户门户在提供的 URL 上可达。/guest/* 处理程序在管理端口(8443)以及专用客户门户端口(8843、8880)上均被分发;工具仅探测给定的 URL。
  • 查询站点在其 guest_access 设置中设置了 portal_customized: true,这是磁盘读取代码路径的前提条件。如果控制器有多个站点,只要其中任一站点启用了此设置,控制器便存在可利用风险。

如果任何条件不满足,工具将回退至更保守的判定。PARTIALLY EXPOSED 结果仍然意味着应用程序存在漏洞,必须打补丁;只是查询的站点恰好未暴露磁盘读取路径。

修复措施

  1. 升级至 UniFi Network Application 10.1.89、10.2.97、9.0.118 或更高版本。
  2. 如果无法立即打补丁,限制对端口 8443 / 8843 / 8880(以及任何前置的反向代理)的网络访问,使其仅可从受信任的管理网络访问。
  3. 在打补丁后,轮换任何可能已被泄露的凭据:管理员密码、控制器推送到受管理设备的 SSH 凭据、控制器的 TLS 密钥库、RADIUS 共享密钥、VPN / WireGuard 密钥、SSL 检查 CA 材料、SMTP 中继密码以及任何支付网关密钥。

在日志中检测

易受攻击的请求模式为:

root@kitploit:~
GET /guest/s/<site>/wechat/sign?page_error=<value>

合法客户端仅通过 POST 访问 /guest/s/<site>/wechat/sign(分发器接受但不触发错误页面渲染器)。任何携带 page_error= 查询参数的 GET 请求,特别是包含 ../、%2e%2e 或前导 / 的请求,都属异常,应视为利用尝试。Tomcat 的标准访问日志会捕获包括查询字符串在内的完整请求行。

许可证

本代码采用 MIT 许可证 分发。

法律免责声明

在未事先获得双方同意的情况下,使用本工具攻击目标是违法的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因使用本程序造成的任何误用或损害负责。

另请参阅

  • Ubiquiti SAB-062 公告
  • Bishop Fox 博客:完整技术分析
下载工具