漏洞描述
Nacos是一个开源的分布式服务发现、配置和管理平台,用于帮助构建云原生应用。
最近Nacos的一个认证绕过漏洞细节被公开,漏洞编号为: AVD-2023-1655789 。攻击者可以可利用默认secret.key生成JWT Token,从而造成权限绕过访问到相关API接口。漏洞影响范围: <=2.2.0
漏洞分析
漏洞的关键点在于使用了默认secret.key进行生成登陆凭证jwt,在/conf/application.properties
配置文件中可以看到加密secret.key
1 | nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 |
通过nacos生成的jwt值有时间限制,为了更好的利用我们在本地生成一个永不过期的jwt。
以下为nacos登陆的时候生成的jwt解码后的值
可以看到内容非常的简单,使用jwt在线加解密网站 生成一个永不过期的jwt,这里注意两点:
1、使用nacos用户,该用户权限最大,相当于超级管理员。
2、secret.key需要进行base64编码。
然后使用该jwt直接登陆即可,这里值得注意点是直接在header里面加上accessToken jwt值是无法登陆后台的,因为里面很多请求是通过在请求中添加accessToken进行鉴权。
最优雅的利用方式是替换登陆的返回包信息为我们的认证信息,随意输入账号密码,然后把登陆的返回包修改为以下内容即可成功登陆。
1 | HTTP/2 200 OK |
安全建议
1、根据官方文档 https://nacos.io/zh-cn/docs/auth.html 修改secret.key 为随机值,并注意保密。
2、升级至最新版本。
- 本文作者: EASY
- 本文链接: http://example.com/2023/03/15/NacosNVDB-CNVDB-2023674205权限认证漏洞/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!