nacos2.0.2漏洞分析及解决方法

绕过鉴权情况

1.

nacos2.0.2漏洞分析及解决方法_第1张图片

userAgentAuthWhite 设置为true,官方没有还没有解析为啥可以通过设置userAgent可以绕过鉴权

实验一

只要把请求header:User-Agent设置为:Nacos-Server即可绕过鉴权

nacos2.0.2漏洞分析及解决方法_第2张图片

实验二

只要把请求header:User-Agent设置为空值,Client-Version设置为:Nacos-Server即可绕过鉴权

nacos2.0.2漏洞分析及解决方法_第3张图片

上述漏洞修复:

nacos.core.auth.enable.userAgentAuthWhite=false

2.

Jwt公钥泄露,可以利用此进行jwt生成

nacos2.0.2漏洞分析及解决方法_第4张图片

nacos2.0.2漏洞分析及解决方法_第5张图片

此情况也可以进行api访问

上述漏洞修复:

  1. 文档中提供的密钥为公开密钥,在实际部署时请更换为其他密钥内容,防止密钥泄漏导致安全风险。
  2. 在2.2.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点。
  3. 密钥需要保持节点间一致,长时间不一致可能导致403 invalid token错误。

3.

Identity.key identity.value 被窃取情况下,可以通过设置header信息绕过鉴权

nacos2.0.2漏洞分析及解决方法_第6张图片

最后结论

解决nacos2.0.2版本漏洞

1.开启api访问鉴权,设置客户端连接key、value

nacos.core.auth.enabled=true

nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos

2.屏蔽通过User-Agent绕过鉴权方式

nacos.core.auth.enable.userAgentAuthWhite=false

3.不要使用默认jwt公钥

客户端添加配置

nacos2.0.2漏洞分析及解决方法_第7张图片

注:这里的username 和password 是nacos 登录的账号密码

附1.4.0以下版本无法解决鉴权问题代码

nacos2.0.2漏洞分析及解决方法_第8张图片

你可能感兴趣的:(SpringBoot,spring,boot,spring,cloud)