绕过鉴权情况
1.
userAgentAuthWhite 设置为true,官方没有还没有解析为啥可以通过设置userAgent可以绕过鉴权
实验一
只要把请求header:User-Agent设置为:Nacos-Server,即可绕过鉴权
实验二
只要把请求header:User-Agent设置为空值,Client-Version设置为:Nacos-Server,即可绕过鉴权
上述漏洞修复:
nacos.core.auth.enable.userAgentAuthWhite=false
2.
Jwt公钥泄露,可以利用此进行jwt生成
此情况也可以进行api访问
上述漏洞修复:
- 文档中提供的密钥为公开密钥,在实际部署时请更换为其他密钥内容,防止密钥泄漏导致安全风险。
- 在2.2.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点。
- 密钥需要保持节点间一致,长时间不一致可能导致403 invalid token错误。
3.
Identity.key identity.value 被窃取情况下,可以通过设置header信息绕过鉴权
最后结论
解决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公钥
客户端添加配置
注:这里的username 和password 是nacos 登录的账号密码
附1.4.0以下版本无法解决鉴权问题代码