泛微e-cology OA系统远程代码执行漏洞安全通告

发布时间 2019-09-20

漏洞编号和级别


CVE编号:暂无,危险级别:高危,CVSS分值:官方未评定


影响版本


受影响的版本


泛微e-cology<=9.0


漏洞概述


泛微e-cology OA是国内应用广泛的OA解决方案。


近日,泛微e-cology OA系统被爆出存在远程代码执行漏洞。该漏洞存在于泛微协同管理应用平台OA系统的BeanShell组件中,该组件为系统自带且允许未授权访问。攻击者通过调用BeanShell组件的问题接口可直接在目标服务器上执行任意命令。


问题出现在resin下lib中的bsh.jar文件里,问题类bsh.servlet.BshServlet,可以看到doGet方法从getParameter中接收到一些参数,然后整个Request请求会交给evalScript方法来进行处理。我们可以看到这个接口没有进行任何权限校验,根据上述分析的路由,这个地方可以被未授权触发。



跟进evalScript方法,调用localInterpreter.eval(paramString);,而 localInterpreter 是 interpreter 实例化对象。



这里看个bsh用法的例子,下面这个例子执行结果是输出hello:



所以我们可以知道bsh中的eval方法可以执行一些java代码。



漏洞验证


漏洞路径:/weaver/bsh.servlet.BshServlet

exec("whoami")

curl http://xx.xx.xx.xx.xx/weaver/bsh.servlet.BshServlet/ -d 'bsh.script=eval%00("ex"%2b"ec(\"whoami\")");&bsh.servlet.captureOutErr=true&bsh.servlet.output=raw'

访问http://url/weaver/bsh.servlet.BshServleth输入payload如下:



修复建议


目前泛微官网发布了补丁,下载地址:https://www.weaver.com.cn/cs/securityDownload.asp。


临时缓解办法:

1、禁止该系统在公网开放。

2、配置 URL 访问控制策略:

部署于公网的泛微OA系统,可通过 ACL 禁止外网对*/*BshServlet/路径的访问。


参考链接

https://www.weaver.com.cn/cs/securityDownload.asp