当前位置:   article > 正文

【备忘录】修复docker环境下的nacos安全漏洞:身份认证绕过漏洞_nacos默认密钥漏洞修复

nacos默认密钥漏洞修复

一、漏洞复现

报告截取内容如下

1.1 访问登录口用户名输入nacos密码输入任意值,进行抓包

img

image-20231023162238549

1.2 伪造登录凭证

添加有效登录时间戳

img

登录信息中

在payload中输入nacos与时间戳

并添加入nacos默认密钥

SecretKey012345678901234567890123456789012345678901234567890123456789

同时选中base64加密

点击生成

img

1.3 登录包中新加入一项凭证验证

Authorization: Bearer 加上凭证

点击发送发现正确登录返回信息

image-20231023162320571

之后讲登录返回包修改为正确登录信息

image-20231023162339953

img

发现登录成功


二、漏洞解决

1、更新版本:

https://nacos.io/zh-cn/blog/announcement-token-secret-key.html

缓解措施:

1、检查application.properties文件中token.secret.key属性,若为默认值,可参考:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html进行更改

具体实操留痕如下,主要是公司的nacos是由之前离职的同事部署,具体研究一步看一部

2.1 分析原因

查看上文中的nacos博客文章可以知道,本次绕过身份验证的漏洞原因是:利用token默认值进行撞击,绕过身份验证。在nacos2.2.0.1和1.4.5版本之前的版本中,可能是为了便于开发环境使用,默认开启了一个自带的token默认值,导致上述报告中,可以利用默认的访问秘钥跳过认证,直接登陆。

2.2 解决方案

总结如下

  1. (旧版本)查看是否使用了默认的token.secret.keynacos.core.auth.server.identity.keynacos.core.auth.server.identity.value,如仍然使用默认值,请参考文档内容尽快进行修改。
  2. (新版本)根据文档设置token.secret.keynacos.core.auth.server.identity.keynacos.core.auth.server.identity.value,并尽快修改默认密码。
  3. 这类应用一般应该部署于内部网络环境,因此不建议用户将Nacos暴露在公网环境

分析解决方案,目前公司的nacos是2.04,采用旧版本解决方案,并且确实部署在内网环境中,没有对公网公开,所以只需要解决第一个方案。

2.3 操作留痕

1、先了解nacos部署环境
  • nacos采用docker部署,使用docker inspect指令可以查看到到挂载目录

    image-20231023163649427

  • 进入挂载目录,修改配置文件后再重启nacos即可。

2、查看比对配置文件

经过比对发现配置如下

image-20231023163800569

关于${NACOS_AUTH_TOKEN:****}这样格式写法的含义:

  • 当环境变量中存在NACOS_AUTH_TOKEN时,采用环境变量
  • 如果不存在NACOS_AUTH_TOKEN时,使用后面的值
3、修改配置文件后,重启

image-20231023164349992

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/818031
推荐阅读
相关标签
  

闽ICP备14008679号