CVE-2022-23131 Zabbix Web Frontend Bypassing the SAML SSO Authentication
2022-2-22 10:39:25 Author: y4er.com(查看原文) 阅读量:20 收藏

  1. https://cdn.zabbix.com/zabbix/appliances/stable/5.4/5.4.8/zabbix_appliance-5.4.8-vmx.tar.gz zabbix5.4的虚拟机
  2. https://github.com/catsAND/zabbix-saml 配置saml sso登录

漏洞产生的根本原因是因为混用了cookie和session。

先看几行对于cookie和session处理的类。

CCookieSession实现SessionHandlerInterface接口,接管了php对于session的处理,用cookie进行包装。

1.png

其中读取session时是使用CCookieHelper

2.png

从cookie中base64回来拿到session

zabbix对于伪造session的处理是另一个类CEncryptedCookieSession,他继承了CCookieSession

3.png

重写了CCookieSession的extractSessionId函数,加了一个checkSign的函数。

那么只要不调用CEncryptedCookieSession的extractSessionId函数,或者干脆不用CEncryptedCookieSession而找使用CCookieSession管理session的地方就可以伪造了。

此时再来看index_sso.php

4.png

直接从session也就是cookie中取出saml_data中的username_attribute,如果查到了用户名,则set一个sessionid,造成绕过鉴权。

sonarsource的漏洞演示中使用了两次登录,套用了原来的sessionid和sign参数,其实不设置这两个参数也可以。

1{"saml_data":{"username_attribute":"Admin"},"sessionid":"","sign":""}

5.png

zabbix在一些特定的配置下可以控agent,这些参考Wfox的 Zabbix 攻击面挖掘与利用

  1. https://cdn.zabbix.com/zabbix/appliances/stable/5.4/5.4.8/zabbix_appliance-5.4.8-vmx.tar.gz zabbix5.4的虚拟机
  2. https://github.com/catsAND/zabbix-saml 配置saml sso登录
  3. https://github.com/0tt7/CVE-2022-23131
  4. https://www.php.net/manual/en/class.sessionhandlerinterface.php

文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。


文章来源: https://y4er.com/posts/cve-2022-23131-zabbix-web-frontend-bypassing-the-saml-sso-authentication/
如有侵权请联系:admin#unsafe.sh