解決'nacos默認(rèn)secret.key配置不當(dāng)權(quán)限繞過(guò)漏洞'的問(wèn)題
一、前言
nacos 2.2.0.1以下版本會(huì)有一個(gè)nacos默認(rèn)secret.key配置不當(dāng)權(quán)限繞過(guò)漏洞
,等級(jí)為高危。形成原因是nacos的配置文件中存在這么一個(gè)secret.key
默認(rèn)配置:
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
會(huì)被他人利用進(jìn)行提權(quán)從而達(dá)到系統(tǒng)受控的目的。
二、解決
解決這個(gè)問(wèn)題需要對(duì)這個(gè)key的默認(rèn)值進(jìn)行修改,建議不要使用明文,可以用base64
,key的長(zhǎng)度要32位以上,下面介紹一下在兩種環(huán)境下的修改方法:
2.1 centos系統(tǒng)
找到nacos的安裝目錄,假設(shè)是在/usr/local/nacos
# 打開(kāi)配置文件所在目錄 cd /usr/local/nacos/conf # 對(duì)文件進(jìn)行編輯 vim application.properties
定位到secret.key
所在行,輸入斜杠/
,然后再輸入secret.key
,最后回車
,如:
/secret.key
然后使用鍵盤的方向鍵定位到要修改的值,輸入i
進(jìn)入編輯模式,之后就可以進(jìn)行修改了。
修改好之后保存,先按Esc
鍵退出編輯模式,最后輸入以下命令進(jìn)行保存:
:wq
保存完之后重啟一下nacos即可。
首先打開(kāi)bin
目錄,bin
目錄是conf
的同級(jí)目錄
cd ../bin
先關(guān)閉
sh shutdown.sh
再啟動(dòng),這里使用的是單機(jī)模式
sh startup.sh -m standalone
2.2 docker容器
1、在宿主機(jī)上修改
docker環(huán)境下如果映射了宿主機(jī)目錄的話,直接在宿主機(jī)上修改配置文件重啟容器即可。
2、在docker容器里面修改
如果沒(méi)有映射宿主機(jī)的目錄,則可以進(jìn)入docker容器內(nèi)進(jìn)行修改。
docker exec -it nacos bash
默認(rèn)目錄是/home/nacos/conf
,然后安裝centos系統(tǒng)的修改方法進(jìn)行修改。
3、直接修改啟動(dòng)命令
如果使用默認(rèn)配置呢,可以在啟動(dòng)命令中增加NACOS_AUTH_TOKEN
參數(shù)來(lái)達(dá)到修改目的,這種方式更為簡(jiǎn)單。
docker環(huán)境的nacos默認(rèn)配置如下
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
先rm
舊的容器
# 強(qiáng)制停止并刪除容器 docker rm -f containerId(容器id) # containerId(容器id) 可以使用下面的命令查看,第一列就是容器id docker ps # 或 docker rm -f nacos
或者使用下面的方式,先停止再移除
# 先停止nacos容器 docker stop nacos # 再刪除nacos容器 docker remove nacos
然后執(zhí)行下面命令啟動(dòng)docker,本例nacos的版本是v2.1.1
docker run --restart=always -d -p 8849:8848 -p 9848:9848 --name nacos --network bridge --env MODE=standalone --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=192.168.10.1 --env MYSQL_SERVICE_PORT=3306 --env MYSQL_SERVICE_DB_NAME=nacos --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env NACOS_AUTH_TOKEN=xxx nacos/nacos-server:v2.1.1
這樣就行了
三、總結(jié)
對(duì)于這個(gè)漏洞大家最好都去排查一下,在第一時(shí)間去解決。解決的途徑有兩種,一就是像上述方法一樣修改默認(rèn)值,二是升級(jí)nacos的版本,在新版本中上面的配置被棄用,取而代之的是nacos.core.auth.plugin.nacos.token.secret.key
,沒(méi)有默認(rèn)值,第一次啟動(dòng)之前需要配置否則會(huì)報(bào)異常,在一定程度上杜絕了舊版本的默認(rèn)值問(wèn)題。
到此這篇關(guān)于解決“nacos默認(rèn)secret.key配置不當(dāng)權(quán)限繞過(guò)漏洞“的文章就介紹到這了,更多相關(guān)nacos權(quán)限繞過(guò)漏洞“內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本構(gòu)建Docker 半自動(dòng)化編譯打包發(fā)布應(yīng)用操作
這篇文章主要介紹了Shell腳本構(gòu)建Docker 半自動(dòng)化編譯打包發(fā)布應(yīng)用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Docker CentOS7的系統(tǒng)上安裝部署以及基礎(chǔ)教程
這篇文章主要介紹了Docker CentOS7的系統(tǒng)上安裝部署以及基礎(chǔ)教程的相關(guān)資料,需要的朋友可以參考下2016-10-10docker離線安裝社區(qū)版(docker-18.06.3-ce)
在一些特定的環(huán)境下,由于網(wǎng)絡(luò)限制或者其他原因,我們可能需要在Linux系統(tǒng)上進(jìn)行離線安裝Docker,本文就來(lái)介紹一下docker離線安裝社區(qū)版,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03使用Docker和Nginx部署Web服務(wù)的操作指南
本文給大家介紹了Docker和Nginx部署Web服務(wù)的完美指南,Docker是一種容器化技術(shù),它可以將應(yīng)用程序及其依賴項(xiàng)打包到一個(gè)獨(dú)立的、可移植的容器中,而Nginx則是一款高性能的Web服務(wù)器和反向代理服務(wù)器,感興趣的朋友可以參考下2024-01-01