蓝凌treexml.tmpl漏洞记录

0x1

由于漏洞接口为/data/sys-common/treexml.tmpl,推测接口进入的uri为/data/sys-common/treexml,需要在源码中进行定位该接口的处理流程
对源码jar文件进行反编译,并定位到接口所在位置的源码,分析如下:
在datacontroller类中找到/data/sys-common/该接口相关处理逻辑,如下图所示


image.png

在164行定位到具体treexml流程如下:


image.png

代码逻辑为从http请求包中获取s_bean,并判断是否为空,为空则输出“参数s_bean不能为空!”,接着通过s_bean参数的值获取具体的类,此处的类为RuleFormulaValidate,调用其的getDataList方法,并将请求体的内容作为参数传递

0x2

定位到具体类RuleFormulaValidate的getDataList方法


image.png

发现获取了请求包中的script参数,并创建了RuleEngineParser类,使用其parseValueScript方法对script参数进行处理。

0x3

跟进RuleEngineParser的parseValueScript方法,如下


image.png

image.png

对传递进来的script参数进行一系列处理(删除空格等等),最终把script参数内容作为java代码通过eval函数去执行,最终导致rce。

0x4

蓝凌之前也报了一个漏洞也是和这个类似都是公式编辑器导致的,不过那个是通过ssrf那个漏洞去越权调用的。
后续蓝凌对公式编辑器这个功能添加了黑名单。

你可能感兴趣的:(蓝凌treexml.tmpl漏洞记录)