解析Nacos的API居然存在這么嚴重的漏洞
很多人使用Nacos其實并沒有真正的去讀過官網(wǎng),以至于忽視了很多重要的細節(jié),Nacos為我們提供了大量API,但是這些API默認是沒有開啟認證的
,直接可以訪問,針對于這一點我們也都可以去驗證一下。下面我提供了兩個調(diào)用示例供大家參考,基于這一點Nacos登錄頁也明確提示Nacos部署到內(nèi)網(wǎng),不要部署到公網(wǎng)
,但是對于沒真正了解過Nacos,壓根也不知道有這個API,也不知道有開啟授權這回事,所以也就意識不到這個API暴露出去后果到底有多么嚴重!
官網(wǎng)API:https://nacos.io/zh-cn/docs/open-api.html
仔細看我們下載的nacos的登錄頁面,有一個特別大的紅字,
內(nèi)部系統(tǒng),不可暴露到公網(wǎng)
。所以nacos一旦部署在公網(wǎng),風險非常大!
一、調(diào)用API示例
1.1. 示例一:獲取配置
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config-client-dev-yaml&group=DEFAULT_GROUP"
如下配置是我們要獲取的配置:
開始訪問:
會發(fā)現(xiàn)直接通過API就可以拿到,而且API沒有任何認證,我認為這是一個很大的問題,那也就是意味著只要我知道你Nacos部署的地址以及端口,我就可以拿到你的配置。
我們有時候會往nacos當中存儲一些數(shù)據(jù)庫相關信息,一旦被盜竊,后果不堪設想。當然還好獲取配置的API當中沒有namespace參數(shù),他只能查看public的。
但是對于服務發(fā)現(xiàn)相關的API還有命名空間相關API他是提供了namespace參數(shù)的
。
1.2. 示例二:刪除命名空間
這里我專門創(chuàng)建了一個test命名空間,并且空間還有配置文件。
直接調(diào)用會驚訝的發(fā)現(xiàn),竟然可以刪除成功,而且還沒有攜帶任何token什么的。
curl -X DELETE "http://localhost:8848/nacos/v1/console/namespaces" -d "namespaceId=test"
然后再去查看會發(fā)現(xiàn)test命名空間已經(jīng)沒有了。
這個問題就比較嚴重了,要知道我們系統(tǒng)當中都會依賴配置文件,一旦配置文件都被人刪除了,后果是什么應該就不用我說了吧。
1.3. 示例三:獲取登錄用戶信息
http://127.0.0.1:8848/nacos/v1/auth/users/?pageNo=1&pageSize=9
1.4. Nacos及時響應此問題
bug描述:https://github.com/advisories/GHSA-36hp-jr8h-556f
Nacos官網(wǎng)聲明在2021年一月份發(fā)布的1.4.1版本修復了此問題:https://github.com/alibaba/nacos/pull/4703
在Nacos低版本當中,如上確實是一個bug,但是后來呢,Nacos針對于此也特意加了一個開關,用來控制是否鑒權。
不管怎么說,我們一定要盡量用最新的版本,因為Nacos其實版本之間變化相對來說沒那么大,就算升級版本也很少會影響到我們自己的代碼。
二、服務端如何開啟鑒權?
官網(wǎng)介紹:https://nacos.io/zh-cn/docs/auth.html
官網(wǎng)給我們提供了Docker環(huán)境以及非Docker環(huán)境開啟鑒權的方式。
非Docker環(huán)境直接修改application.properties當中的如下參數(shù):
### If turn on auth system: nacos.core.auth.enabled=true
注意:非Docker環(huán)境 鑒權開關是修改之后立馬生效的,不需要重啟服務端。
Docker環(huán)境直接啟動命令當中添加如下參數(shù)即可:
-env NACOS_AUTH_ENABLE=true
開啟后再訪問API直接會403!
如果再想訪問API需要先訪問登錄接口,獲取到token,然后將token攜帶到參數(shù)訪問即可,如下:
三、開啟服務身份識別功能
這個主要是針對于Nacos集群而來的,開啟鑒權功能后,服務端之間的請求也會通過鑒權系統(tǒng)的影響。我理解的就是將每個集群的節(jié)點設置的identity.key
和identity.value
設置為一樣的,這樣就認為鑒權通過了。
到此這篇關于Nacos的API居然存在這么嚴重的漏洞的文章就介紹到這了,更多相關Nacos API漏洞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot使用SchedulingConfigurer實現(xiàn)多個定時任務多機器部署問題(推薦)
這篇文章主要介紹了SpringBoot使用SchedulingConfigurer實現(xiàn)多個定時任務多機器部署問題,定時任務多機器部署解決方案,方式一拆分,單獨拆分出來,單獨跑一個應用,方式二是基于aop攔截處理(搶占執(zhí)行),只要有一個執(zhí)行,其它都不執(zhí)行,需要的朋友可以參考下2023-01-01Java實現(xiàn)注冊登錄與郵箱發(fā)送賬號驗證激活功能
這篇文章主要介紹了Java實現(xiàn)注冊登錄與郵箱發(fā)送賬號驗證激活功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-12-12JAVA基礎類庫之String類,StringBuffer類和StringBuilder類
這篇文章主要介紹了Java中基礎類庫的String類,StringBuffer類和StringBuilder類,是Java入門學習中的基礎知識,需要的朋友可以參考下2021-09-09