漏扫出服务器的nacos1.2.1版本存在权限绕过漏洞(CVE-2021-29441)漏洞,给出的建议是升级到最新版本,后面去nacos官网当时最新版本是2.0.3,果断换成了当时最新的再让安全人员漏扫发现还是存在,明明官网已经说2.0.0以上版本已经修复了,怎么还是被扫到呢?通过网上翻看资料得到如下解决办法:
1、修改 nacos的application.properties配置文件,开启服务身份识别功能
### 开启鉴权
nacos.core.auth.enabled=true
### 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false
### 配置自定义身份识别的key(不可为空)和value(不可为空)
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example
nacos.core.auth.server.identity.key和nacos.core.auth.server.identity.value根据你的需要,填写你的key和value
修改好后重启nacos,浏览器执行:
'http://your_ip:8848/nacos/v1/auth/users/?pageNo=1&pageSize=9'
在没有开启服务身份识别功能,执行以上是会出数据的:
{
"totalCount": 1,
"pageNumber": 1,
"pagesAvailable": 1,
"pageItems": [
{
"username": "nacos",
"password": "$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu"
}
]
}
添加服务身份识别功能后换在浏览器执行如果出现这个:
以及执行:
'http://127.0.0.1:8848/nacos/v1/auth/users?username=test&password=test'
出现403的说明修改成功
2、Nacos注册及配置中心开启权限认证
修改你的项目中的bootstrap.yml或bootstrap.properties:
nacos的discovery和config开启用户密码认证,用户密码就是你的nacos登录的用户名和密码,在此要注意的是,用户名和密码不要带有%、$这些特殊字符,不然你的服务会注册不上到nacos,因为它会转义
以上修改完成以后,亲测再次漏扫,nacos权限绕过漏洞(CVE-2021-29441)不会再出现