【漏洞检测脚本】NginxUI未授权备份下载与加密密钥泄露漏洞(CVE-2026-27944)

admin 2026-03-18 18:37:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档剖析了NginxUI2.3.3版本前的CVE-2026-27944漏洞,因/api/backup接口缺失认证且泄露加密密钥,攻击者可未授权下载并解密备份获取SSL私钥等核心数据。文中提供检测脚本、FOFA语法、利用链分析及升级修复方案。内容详实准确,具备高可操作性与实战价值,为安全人员提供了完整的漏洞复现与修复指引。 综合评分: 88 文章分类: 漏洞预警,漏洞POC,漏洞分析


cover_image

【漏洞检测脚本】Nginx UI 未授权备份下载与加密密钥泄露漏洞(CVE-2026-27944)

原创

金夏 金夏

金夏安全

2026年3月9日 13:20 广东

免责声明

本文仅用于技术学习和讨论。请勿使用本文所提供的内容及相关技术从事非法活动,由于传播、利用此文所提供的内容或工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果均与文章作者及本账号无关,本次测试仅供学习使用。如有内容争议或侵权,请及时私信我们!我们会立即删除并致歉。谢谢!


一、漏洞描述

Nginx UI 是一款基于Go语言开发的开源Web管理界面,旨在为Nginx服务器提供图形化配置管理、SSL证书维护及日志查看等功能。该工具通过可视化界面简化了Nginx的配置与运维管理。

在 2.3.3版本之前,Nginx UI存在一处严重的安全设计缺陷:/api/backup 接口未配置任何身份认证中间件,且在处理备份请求时,将AES-256加密密钥及初始化向量(IV)直接明文写入HTTP响应头 X-Backup-Security 中返回给客户端。

这一设计缺陷导致未经身份验证的攻击者可直接下载完整的系统备份文件,并利用响应头中泄露的密钥立即解密备份包,获取其中的用户凭证、会话令牌、SSL私钥、Nginx配置文件等核心敏感信息,从而实现对目标服务器的完全接管。


二、漏洞检测脚本

获取脚本请在公众号回复“20260309”获取
必需参数(二选一):  -t, --target         单个目标URL  -f, --file           目标列表文件可选参数:  -n, --threads        并发线程数 (默认: 10)  --timeout            超时时间秒 (默认: 10)  -o, --output         结果输出文件 (默认: scan_results.json)  -D, --download-dir   备份下载目录 (默认: downloaded_backups)  -c, --check-only     仅检测,不下载备份  -d, --decrypt        下载后自动解密 (需单目标)  -e, --extract-dir    解密文件提取目录 (默认: backup_extracted)
离线解密模式:  --local-backup       本地备份文件路径  --local-key          本地解密密钥  --local-iv           本地解密IV

三、fofa语法

title="Nginx UI"

四、漏洞利用链分析

攻击流程:

  1. 目标发现:使用FOFA、Shodan等搜索引擎或端口扫描,发现暴露在公网的Nginx UI管理面板(默认端口9000)。
  2. 漏洞探测:向目标发送GET请求到 /api/backup 接口,检查响应头是否包含 X-Backup-Security 字段。
  3. 下载备份:确认漏洞存在后,直接下载加密的备份文件(无需任何认证)。
  4. 提取密钥:从响应头 X-Backup-Security 中提取Base64编码的AES-256密钥和IV。
  5. 解密备份:使用提取的密钥解密备份文件,获取其中的敏感信息:
  • database.db:SQLite数据库,包含用户凭证、会话令牌
  • app.ini:配置文件,可能包含数据库密码、API密钥
  • ssl/目录:SSL证书和私钥
  • Nginx配置文件:虚拟主机配置、反向代理规则
  1. 扩大攻击
  • 使用泄露的SSL私钥进行中间人攻击或网站仿冒
  • 利用管理员凭证登录Nginx UI管理面板,修改配置、部署恶意规则
  • 通过泄露的内网架构信息,进一步渗透内网

漏洞根源分析

该漏洞源于两个关键设计缺陷:

// 1. API端点未配置认证中间件r.GET("/backup", CreateBackup)  // 无认证
// 2. 加密密钥明文写入响应头securityToken := result.AESKey + ":" + result.AESIvc.Header("X-Backup-Security", securityToken)  // 密钥泄露

问题所在文件

  • api/backup/router.go:路由注册缺少认证
  • api/backup/backup.go:将密钥写入响应头
  • internal/backup/backup.go:备份文件生成逻辑

五、漏洞修复建议

1. 立即升级(官方修复)

将Nginx UI升级至 2.3.3 或更高版本

# 如果使用二进制安装wget https://github.com/0xJacky/nginx-ui/releases/download/v2.3.3/nginx-ui-linux-amd64.tar.gztar -xzf nginx-ui-linux-amd64.tar.gz./nginx-ui upgrade
# 如果使用Dockerdocker pull uozi/nginx-ui:latestdocker-compose up -d

2. 临时缓解措施

如无法立即升级,可采取以下措施:

网络层面:

  • 严禁将Nginx UI管理面板暴露在公网
  • 通过防火墙限制访问IP,仅允许内部网络或VPN访问
# 仅允许内网访问iptables -A INPUT -p tcp --dport 9000 -s 192.168.0.0/16 -j ACCEPTiptables -A INPUT -p tcp --dport 9000 -j DROP

3. 安全加固建议

  • 最小权限原则:运行Nginx UI的账户仅授予必要的最小权限
  • 定期备份与监控:对关键配置文件进行备份,并监控异常访问
  • 日志审计:检查访问日志中是否有对 /api/backup 的异常请求
grep "/api/backup" /var/log/nginx-ui/access.log
  • 敏感信息清理:及时清理不再使用的备份文件,避免泄露历史数据

4. 入侵排查

若怀疑已被利用,请立即检查:

  • 查看Nginx UI日志中是否有对 /api/backup 的访问记录
  • 检查系统是否新增了可疑用户或计划任务
  • 验证SSL证书是否被替换或仿冒
  • 审查Nginx配置是否有异常修改

#


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:金夏安全 金夏 金夏《【漏洞检测脚本】Nginx UI 未授权备份下载与加密密钥泄露漏洞(CVE-2026-27944)》

评论:0   参与:  0