Nacos漏洞复现 —> 受影响版本0.1.0<=Nacos <=2.2.0

身份认证绕过漏洞 (QVD-2023-6271)

漏洞描述
漏洞原理为开源服务管理平台 Naos在默认配置下未对 token.secret.key 进行修改,导致远程攻击者可以绕过密钥认证进入后台造成系统受控等后果。
漏洞信息
漏洞类型:身份认证绕过
漏洞等级:高危
漏洞编号:NVDB-CNVDB-2023674205

漏洞影响范围:
0.1.0<= Nacos<= 2.2.0基本上都受到了影响,最新的版本已修复漏洞。
漏洞的本质是因为使用了默认的key。
JWT(JSON Web Token)是一种用于在网络应用之间安全传递信息的开放标准。在使用JWT时,通常需要使用密钥对token进行签名,以确保token在传输过程中不被篡改。如果在代码中将密钥硬编码到应用程序中,将会存在JWT硬编码漏洞。WT硬编码漏洞是指将密钥硬编码到应用程序代码中,而不是存储在安全的密钥存储库中,攻击者可以轻松地获取该密钥并使用其签署和验证JWT。这使攻击者可以创建或修改JWT,或者验证伪造的JWT,从而导致安全漏洞。例如,应用程序使用硬编码密钥对JWT进行签名,攻击者可以轻松获取该密钥并创建有效的JWT,该JWT会被误认为是经过身份验证的用户,从而获得未经授权的访问权限。因此,为了避免JWT硬编码漏洞,应该将密银存储在安全的密钥存储库中,并且只有授权的应用程序以访问它。

环境搭建:

github 下载2.2.0以下的版本环境 url如下:https://github.com/alibaba/nacos/releases/download/2.1.2/nacos-server-2.1.2.zip

环境解压后在主目录中的bin目录敲 "startup.cmd -m standalone" 命令启动

访问登录url:http://yourIP:8848/nacos/#/login

复现过程:
在nacos中,token.secret.key值是固定死的,位置在conf下的 application.properties 中。

nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

在https://jwt.io/ 中输入默认key ,给exp值写好时间戳,写当前Unix时间往后的时间戳,在线时间戳URL如下: 在线时间戳转换工具,key下面的 secret base64 encoded 要勾选一下

复制加密的jwt:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNjkxODM1MDAxIiwiZXhwIjoiMTY5MTgzNTAwMSJ9.1PIaexADxbmsBJs0paaSskmqctxqT1pzkDPzT5b7wXk

添加Authorization值,请求包如下

可以看到返回200,利用默认key可以绕过身份认证,进入后台使用Burp拦截网站请求,并拦截返回包。

漏洞修复:
1.2.0版本及以上的nacos,修改配置文件中的nacos.core.auth.plugin.nacos.token.secret.key即可。

1.1.4版本及以下的nacos,由于私钥写死到了代码里,用户无法自行配置,只能升级nacos到最新版。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值