Nacos2.4.3新版漏洞利用方式总结
字数 1940 2025-08-22 12:22:24
Nacos 2.4.3 新版漏洞利用方式深度分析
1. 漏洞背景
Nacos 是一个动态服务发现、配置和服务管理平台,广泛应用于微服务架构中。在 Nacos 2.4.3 版本中,存在多个安全漏洞和配置问题,可能导致未授权访问、权限绕过甚至远程代码执行。
2. 认证机制分析
2.1 过滤器链分析
Nacos 的认证机制主要通过以下过滤器实现:
-
HttpRequestContextFilter
- 获取请求头信息
- 为后续过滤器提供请求上下文
-
AuthFilter
- 核心认证过滤器
- 获取 URI 和 token
- 实现权限控制逻辑
- 认证流程:
- 如果请求头存在 JWT 秘钥,进入下一个过滤器
- 如果配置
nacos.core.auth.enable.userAgentAuthWhite=true,可通过伪造 User-Agent 绕过认证 - 获取 URI 并从 map 中匹配路径:
- 如果 map 中没有匹配到路径,进入下一个过滤器
- 如果匹配到路径,检查
@Secured注解:- 无
@Secured注解:直接进入下一个过滤器 - 有
@Secured注解:验证 token(获取 IP 和 accessToken,用 JWT 秘钥解密)
- 无
-
ParamCheckerFilter
- 处理参数,过滤恶意字符
- 通过
@Extractor注解获取需要检测的参数 - 使用
checkParamInfoList检测参数合规性
2.2 认证绕过条件
- 配置
nacos.core.auth.enable.userAgentAuthWhite=true时,可通过伪造 User-Agent 绕过认证 - 查找未被
@Secured注解的路由接口
3. 未授权访问漏洞
3.1 未授权接口列表
以下接口在未正确配置认证时可能被未授权访问:
-
命名空间相关:
http://[target]:8848/nacos/v1/console/namespaceshttp://[target]:8848/nacos/v1/console/namespaces?show=all&namespaceId=
-
集群操作相关:
http://[target]:8848/nacos/v2/ns/operator/switcheshttp://[target]:8848/nacos/v2/ns/operator/metrics?onlyStatus=false
-
健康检查:
http://[target]:8848/nacos/v1/ns/health/checkers
-
日志级别修改(PUT请求):
http://[target]:8848/nacos/v1/ns/ops/log- 参数:
logName=naming-push&logLevel=INFO
3.2 SQL注入潜在风险
虽然大部分 SQL 查询使用预编译处理,但存在潜在风险点:
- 接口
/nacos/v1/ns/instance/statuses?key=DEFAULT_GROUP@@1'@Extractor注解未获取 key 参数- key 参数绕过检测
- 虽然未实际执行 SQL,但存在潜在风险
4. CVE-2021-29442 漏洞利用
4.1 利用条件
- 使用 Derby 数据库
- 配置
nacos.config.derby.ops.enabled=true
4.2 漏洞利用步骤
- 通过 Derby SQL 接口执行 SELECT 语句
- 利用条件竞争进行文件上传
- 使用 SELECT 加载恶意包实现命令执行
5. 漏洞防御建议
-
强制开启认证
- 确保
nacos.core.auth.enabled=true - 避免默认无认证状态
- 确保
-
安全配置
- 避免设置
nacos.core.auth.enable.userAgentAuthWhite=true - 除非必要,否则禁用
nacos.config.derby.ops.enabled
- 避免设置
-
网络隔离
- 将 Nacos 服务部署在内网
- 配置防火墙规则限制访问来源
-
版本升级
- 及时更新到最新安全版本
- 关注官方安全公告
-
日志监控
- 监控未授权访问尝试
- 特别关注对敏感接口的访问
6. 总结
Nacos 2.4.3 版本存在多种安全风险,主要问题包括:
- 默认未开启认证机制
- 存在认证绕过可能性(User-Agent 伪造)
- 多个未授权访问接口
- Derby 数据库相关命令执行漏洞(CVE-2021-29442)
管理员应按照防御建议进行安全配置,确保服务安全运行。开发人员应注意接口的安全注解使用,避免遗漏 @Secured 和 @Extractor 注解导致安全风险。