CVE-2024-0738漏洞挖掘过程学习

admin 2024年1月22日10:29:23评论19 views字数 1100阅读3分40秒阅读模式

使

应粉丝要求小编将往期poc和我在网上收集的一些poc打包分享到网盘了。同时分享了大量电子书和护网常用工具,在文末免费获取。

01

漏洞名称

mldong DecisionModel.java ExpressionEngine 代码注入漏洞

02

漏洞影响

mldong 后台管理

CVE-2024-0738漏洞挖掘过程学习

03

漏洞描述

mldong是一个开源项目,是基于SpringBoot+Vue3快速开发平台、自研的工作流引擎。在com/mldong/modules/wf/engine/model/DecisionModel.java文件的ExpressionEngine函数中发现了一个代码注入漏洞。攻击者通过该漏洞进行的操纵可能导致代码注入,攻击可远程发起。

开源项目地址

https://gitee.com/mldong/mldong

04

漏洞挖掘过程

在项目源码中寻找危险函数eval(通过代码搜索,这通常会触发表达式注入)

这段代码的主要功能是为决策节点执行自定义执行逻辑。com/mldong/modules/wf/engine/model/DecisionModel.java

CVE-2024-0738漏洞挖掘过程学习

通过代码跟踪,发现eval方法是基于ExpressionEngine接口实现的。/cn/hutool/extra/expression/ExpressionUtil.class

CVE-2024-0738漏洞挖掘过程学习

getEngine方法是一个静态方法,在实例化ExpresionUtil时将自动调用该方法。最后,找到配置文件,根据文件内容,可以推断eval()方法识别SPEL表达式。

mldong-mastermldong-frameworkmldong-basesrcmainresourcesMETA-INFservicescn.hutool.extra.expression.ExpressionEngine

CVE-2024-0738漏洞挖掘过程学习

漏洞验证:

通过调用链,发现eval()方法从实例启动接口开始触发。值得注意的是,它只在执行决策模型时触发,这意味着处理过程需要有判断条件。

CVE-2024-0738漏洞挖掘过程学习

进入前端页面,点击添加菜单。

CVE-2024-0738漏洞挖掘过程学习

CVE-2024-0738漏洞挖掘过程学习

添加后,单击设计菜单,右键单击,选择离开表单。依次选择开始节点、条件判断节点和结束节点。

CVE-2024-0738漏洞挖掘过程学习

CVE-2024-0738漏洞挖掘过程学习

点击条件判断进行编辑。

CVE-2024-0738漏洞挖掘过程学习

Payload:

T(java.lang.Runtime).getRuntime().exec('calc')

单击保存

CVE-2024-0738漏洞挖掘过程学习

部署后,在流程定义菜单中启动流程。

CVE-2024-0738漏洞挖掘过程学习

成功触发的漏洞。

CVE-2024-0738漏洞挖掘过程学习

05

原文始发于微信公众号(AI与网安):CVE-2024-0738漏洞挖掘过程学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月22日10:29:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-0738漏洞挖掘过程学习http://cn-sec.com/archives/2416688.html

发表评论

匿名网友 填写信息