freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Gitee 榜首 | 某热门开源工作流引擎RCE漏洞分析
训牛高手 2024-01-17 23:46:02 226116

一、免责声明

本帖旨在于技术交流,请勿用于任何不当用途!由此而引起的一切不良后果均与本人无关!

二、项目简介

项目名:mldong

gitee: https://gitee.com/mldong/mldong.git

该项目是一个自研开源工作流引擎,已经连续数周拿下Gitee热门项目榜首。

1705495935_65a7cd7ff012fe4c08da3.png!small?1705495936258

三、漏洞分析

1.锁定危险函数eval()

com/mldong/modules/wf/engine/model/DecisionModel.java:28

根据以往经验,eval()等方法通常涉及注入问题,但实际情况需要进一步确认。

1705496111_65a7ce2f05ec33dd606d8.png!small?1705496111819

2.eval()函数分析

/hutool/hutool-all/5.8.4/hutool-all-5.8.4.jar!/cn/hutool/extra/expression/ExpressionUtil.class:20

通过代码跟踪发现,eval方法是根据ExpressionEngine接口实现得来的,然而最终是由哪个表达式解析组件去实现却并不确定。可能是SPEL,也可能是MVEL或者其它。

我们发现该方法来自hutool组件,接下来我们先对hutool进行简单了解,这样才有利于我们更好的理解代码。

1705496213_65a7ce955edef8c3fd7a1.png!small?1705496214686

1705497055_65a7d1df631e27876fb42.png!small?1705497055929

3.hutool简介

Hutool是一个Java工具类库,从图中可以知道第10个模块extra是一个可拓展模块,而我们的eval()方法正是来自这个模块。难道这个方法

可试读前30%内容
¥ 9.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 漏洞 # 渗透测试 # web安全 # 漏洞分析 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 训牛高手 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Java代码审计
训牛高手 LV.3
练习时长两年半的代码审计砖家。
  • 5 文章数
  • 14 关注者
渗透测试 | 对Austin系统进行代码审计并利用文件读写漏洞实现Getshell
2024-01-10
关于LinkWeChat的一次代码审计记录
2023-12-04
芋道管理系统RCE漏洞简谈
2023-05-23
文章目录