【漏洞分析】泛微OA E-cology 远程代码执行漏洞原理分析、过滤器绕过及批量检测工具
字数 1030 2025-08-26 22:11:15

泛微OA E-cology远程代码执行漏洞深度分析

1. 漏洞概述

漏洞名称:泛微OA E-cology远程代码执行漏洞
CNVD编号:CNVD-2019-32204
影响版本:e-cology <=9.0
威胁等级:高危
公开时间:2019年9月17日

2. 漏洞背景

泛微OA官方于2019年9月17日更新了一个远程代码执行漏洞补丁。该漏洞存在于泛微e-cology OA系统的JAVA Beanshell接口中,攻击者可未授权访问该接口,通过构造特定的HTTP请求绕过泛微本身的安全限制,实现远程命令执行。

3. 技术原理分析

3.1 BeanShell基础知识

BeanShell是一个小型、免费、可嵌入的Java源解释器,具有以下特点:

  • 动态执行标准Java语法
  • 支持松散类型、命令和方法闭包
  • 可以执行print、dir、eval、exec等命令

3.2 漏洞根源分析

通过反编译bsh-2.0b4.jar文件,发现漏洞存在于servlet.BshServlet类中:

  1. 关键方法

    • doGetdoPost方法用于接收并执行提交的数据
    • doPost是对doGet的二次封装
  2. 执行流程

    • doGet方法调用evalScript方法创建名为obj的对象
    • evalScript方法中的pramString参数最终会被interpreter.eval处理
    • 调用链最终到达bsh.commands/exec.bsh脚本,该脚本可以执行系统命令

4. 漏洞复现

4.1 基本POC

bsh.script=exec("whoami");&bsh.servlet.output=raw

4.2 绕过过滤器的POC

  1. Unicode编码绕过

    bsh.script=\u0065\u0078\u0065\u0063("whoami");&bsh.servlet.output=raw
    
  2. 字符串拼接绕过

    bsh.script=eval%00("ex"%2b"ec(bsh.httpServletRequest.getParameter(\"command\"))");&bsh.servlet.captureOutErr=true&bsh.servlet.output=raw&command=whoami
    

5. 漏洞检测工具

GitHub上提供了批量验证脚本,组合了常用的泛微OA web路径和上述绕过过滤器的POC:

6. 防护建议

  1. 及时升级到最新版本,安装官方补丁
  2. 限制对BeanShell接口的访问权限
  3. 部署WAF设备,过滤可疑的请求
  4. 监控系统日志,检测异常命令执行行为

7. 总结

该漏洞利用BeanShell接口未授权访问和命令执行功能,通过精心构造的HTTP请求绕过安全限制,危害性较高。建议所有使用泛微OA系统的组织尽快检查并修复此漏洞。

泛微OA E-cology远程代码执行漏洞深度分析 1. 漏洞概述 漏洞名称 :泛微OA E-cology远程代码执行漏洞 CNVD编号 :CNVD-2019-32204 影响版本 :e-cology <=9.0 威胁等级 :高危 公开时间 :2019年9月17日 2. 漏洞背景 泛微OA官方于2019年9月17日更新了一个远程代码执行漏洞补丁。该漏洞存在于泛微e-cology OA系统的JAVA Beanshell接口中,攻击者可未授权访问该接口,通过构造特定的HTTP请求绕过泛微本身的安全限制,实现远程命令执行。 3. 技术原理分析 3.1 BeanShell基础知识 BeanShell是一个小型、免费、可嵌入的Java源解释器,具有以下特点: 动态执行标准Java语法 支持松散类型、命令和方法闭包 可以执行print、dir、eval、exec等命令 3.2 漏洞根源分析 通过反编译bsh-2.0b4.jar文件,发现漏洞存在于 servlet.BshServlet 类中: 关键方法 : doGet 和 doPost 方法用于接收并执行提交的数据 doPost 是对 doGet 的二次封装 执行流程 : doGet 方法调用 evalScript 方法创建名为 obj 的对象 evalScript 方法中的 pramString 参数最终会被 interpreter.eval 处理 调用链最终到达 bsh.commands/exec.bsh 脚本,该脚本可以执行系统命令 4. 漏洞复现 4.1 基本POC 4.2 绕过过滤器的POC Unicode编码绕过 : 字符串拼接绕过 : 5. 漏洞检测工具 GitHub上提供了批量验证脚本,组合了常用的泛微OA web路径和上述绕过过滤器的POC: 脚本地址: https://github.com/myzing00/Vulnerability-analysis/tree/master/0917/weaver-oa/CNVD-2019-32204 6. 防护建议 及时升级到最新版本,安装官方补丁 限制对BeanShell接口的访问权限 部署WAF设备,过滤可疑的请求 监控系统日志,检测异常命令执行行为 7. 总结 该漏洞利用BeanShell接口未授权访问和命令执行功能,通过精心构造的HTTP请求绕过安全限制,危害性较高。建议所有使用泛微OA系统的组织尽快检查并修复此漏洞。