0x1
由于漏洞接口為/data/sys-common/treexml.tmpl,推測接口進入的uri為/data/sys-common/treexml,需要在源碼中進行定位該接口的處理流程
對源碼jar文件進行反編譯,并定位到接口所在位置的源碼,分析如下:
在datacontroller類中找到/data/sys-common/該接口相關(guān)處理邏輯,如下圖所示

image.png
在164行定位到具體treexml流程如下:

image.png
代碼邏輯為從http請求包中獲取s_bean,并判斷是否為空,為空則輸出“參數(shù)s_bean不能為空!”,接著通過s_bean參數(shù)的值獲取具體的類,此處的類為RuleFormulaValidate,調(diào)用其的getDataList方法,并將請求體的內(nèi)容作為參數(shù)傳遞
0x2
定位到具體類RuleFormulaValidate的getDataList方法

image.png
發(fā)現(xiàn)獲取了請求包中的script參數(shù),并創(chuàng)建了RuleEngineParser類,使用其parseValueScript方法對script參數(shù)進行處理。
0x3
跟進RuleEngineParser的parseValueScript方法,如下

image.png

image.png
對傳遞進來的script參數(shù)進行一系列處理(刪除空格等等),最終把script參數(shù)內(nèi)容作為java代碼通過eval函數(shù)去執(zhí)行,最終導致rce。
0x4
藍凌之前也報了一個漏洞也是和這個類似都是公式編輯器導致的,不過那個是通過ssrf那個漏洞去越權(quán)調(diào)用的。
后續(xù)藍凌對公式編輯器這個功能添加了黑名單。