CVE-2022-23131——绕过 SAML SSO 身份验证

CVE-2022-23131——绕过 SAML SSO 身份验证漏洞描述安全断言标记语言 SAML 是最常见的单点登录 SSO 标准之一 围绕 XML 实现 它允许身份提供者 IdP 一个能够对用户进行身份验证的实体 告诉服务提供者 SP 这里是 Zabbix 你是谁 您可以将 ZabbixWeb 前端配置为允许通过 SAML 进行用户身份验证 但默认情况下不启用它 因为它需要了解身份提供者的详细信息 这是企业部署最常见的设置 在启用 SAMLSSO 身份验证的实例上 它允许绕过身份验证并获得管理员权限 攻击者可以使用此访问权限在链接的 ZabbixSer

漏洞描述

安全断言标记语言 (SAML) 是最常见的单点登录 (SSO) 标准之一。围绕 XML 实现,它允许身份提供者(IdP,一个能够对用户进行身份验证的实体)告诉服务提供者(SP,这里是 Zabbix)你是谁。您可以将Zabbix Web 前端配置为允许通过 SAML 进行用户身份验证,但默认情况下不启用它,因为它需要了解身份提供者的详细信息。这是企业部署最常见的设置。

在启用 SAML SSO 身份验证的实例上,它允许绕过身份验证并获得管理员权限。攻击者可以使用此访问权限在链接的Zabbix Server和Zabbix Agent实例上执行任意命令。

在这里插入图片描述

影响范围

Zabbix Web 前端版本包括

  • 5.4.8
  • 5.0.18
  • 4.0.36

漏洞分析

与 SAML 身份验证机制相关的代码可以在index_sso.php中找到。简而言之,它的目标是:

  • 将用户重定向到 IdP;
  • 用户通过身份验证后,验证传入 SAML 有效负载的格式和签名。创建一个名为saml_data的会话条目来记住用户的属性;
  • 如果会话中存在名为saml_data的条目,则提取其值并根据username_attribute的值在 Zabbix 上对用户进行身份验证。
    index_sso.php

 if (CSessionHelper::has('saml_data')) { 
    $saml_data = CSessionHelper::get('saml_data'); CWebUser::$data = API::getApiService('user')->loginByUsername($saml_data['username_attribute'], (CAuthenticationHelper::get(CAuthenticationHelper::SAML_CASE_SENSITIVE) == ZBX_AUTH_CASE_SENSITIVE), CAuthenticationHelper::get(CAuthenticationHelper::AUTHENTICATION_TYPE) ); 

漏洞利用

漏洞利用很简单,特别是因为Zabbix Web 前端自动配置了一个名为Admin的高权限用户。

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

在这里插入图片描述

参考视频:https://youtu.be/5dci1i6Fq3M?t=22 

一旦在仪表板上被认证为管理员,攻击者可以在任何附加的Zabbix Server上执行任意命令,如果在配置中明确允许AllowKey=system.run[*](非默认) ,则可以在Zabbix Agents上执行。

1、replace [zbx_signed_session] to [cookie]
在这里插入图片描述
2、sign in with Single Sign-On (SAML)
在这里插入图片描述
绕过登录进入后台
在这里插入图片描述










EXP

关注公众号后台回复“CVE-2022-23131”获取
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198887.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午2:17
下一篇 2026年3月26日 下午2:18


相关推荐

  • Nagios3.0.5在CentOS5.2中安装[通俗易懂]

    Nagios3.0.5在CentOS5.2中安装

    2022年3月8日
    43
  • 从U盘安装centos7(史上最简单的终极解决方案)

    从U盘安装centos7(史上最简单的终极解决方案)1、下载最新版本的centos(目前是centos7.6)https://www.centos.org/download/由于我是安装服务器,所以选择了MinimalISO(只有900多MB)2、制作Centos安装盘(准备一个空白的1GB以上的U盘)2.1.安装UltraISO2.2.安装完成后点…

    2022年5月20日
    53
  • 守护线程是什么_守护线程什么时候结束

    守护线程是什么_守护线程什么时候结束守护线程是什么?Java线程分为用户线程和守护线程。守护线程是程序运行的时候在后台提供一种通用服务的线程。所有用户线程停止,进程会停掉所有守护线程,退出程序。Java中把线程设置为守护线程的方法:在start线程之前调用线程的setDaemon(true)方法。注意:setDaemon(true)必须在start()之前设置,否则会抛出IllegalThrea…

    2022年10月15日
    6
  • 孟小峰:大数据管理与数据思维

    孟小峰:大数据管理与数据思维孟小峰:大数据管理与数据思维大数据的规模效应给数据存储、管理以及数据分析带来了极大的挑战,数据管理方式上的变革正在酝酿和发生。本文对大数据的基本概念进行剖析,归纳大数据时代所面临的新挑战,并对大数据的主要应用做简单对比。在此基础上,阐述大数据处理的基本框架,并就云计算技术对于大数据时代数据管理所产生的作用进阅读全文和小伙伴们一起来吐槽

    2022年6月7日
    50
  • C++ this指针详解

    C++ this指针详解this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子:​voidDate::setMonth(intmn){month=mn;//这三句是等价的this->month=mn;(*this).month=mn;}​1.this只能在成员函数中使用。…

    2022年5月13日
    37
  • 腾讯云接入备案流程 新手必看教程

    腾讯云接入备案流程 新手必看教程为优化备案流程 提升备案服务体验 腾讯云已全面支持电子化核验 目前备案网页端正在进行升级改造 升级期间 暂不支持通过备案网页端创建新的备案订单 请使用腾讯云网站备案小程序进行备案信息核验及提交备案材料 提示 若网站域名已通过其他服务商取得备案号 现要将域名指向腾讯云服务器 由腾讯云服务器托管网站 则需要在腾讯云进行接入备案 1 备案准备为了节约备案时间和顺利通过备案 建议提前了解备案流程

    2025年7月14日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号