泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现
1.简介(开场废话)
攻击者可通过存在漏洞的页面直接获取到数据库配置信息。如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器。
2.影响范围
漏洞涉及范围包括不限于8.0、9.0版
3.搭建个环境(其实环境不重要,信息泄露这个东西)
4.已知漏洞点出现在/mobile/dbconfigreader.jsp这个页面(开始胡乱分析。。。有错还希望师傅们指出来)
直接看源代码好了,搜了一圈没找到8.0的安装包,我太难了,借张图过来,嘿嘿嘿
来源:https://mp.weixin.qq.com/s/zTEUan_BtDDzuHzmd9pxYg
首先在这个页面获取数据库用户名密码,然后存储到变量sb中,再进行转换,进行DES加密
有了源码,我们编译一下源码,断点调试,康康哪里出现了问题
<%
String conStr= "12345"; //Prop.getPropValue("weaver","ecology.url");
String conUser= "12345"; //Prop.getPropValue("weaver","ecology.user");
String conPsw= "12345"; //Prop.getPropValue("weaverl","ecology.password");
String loginType="sqlserver"; //Prop.getPropValue("weaver","authentic");
//上面应该是从别的页面取数据过来,我这里直接定死
StringBuffer sb=new StringBuffer(); //new 一个StringBuffer类对象
//StringBuffer和StringBuilder 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)
//由于 StringBuilder 相较于 StringBuffer 有速度优势,大多数时候还是用StringBuilder String verb="url="+conStr+",user="+conUser+",password="+conPsw+",Logintype="+loginType;
//赋值操作
byte[] str=verb.getBytes();
//将字符串转化为字节数组byte[]
String keyString="1z2x3c4v5b6n"; //DES的加密密钥
System.out.println(verb);//url=12345,user=12345,password=12345,Logintype=sqlserver
byte[] keyByte=keyString.getBytes();
//创建一个密匙工厂,然后用它把DESKeySpec对象转换成一个Secretkey对象
DESKeySpec dks1=new DESKeySpec(keyByte);
SecretKey key=SecretKeyFactory.getInstance("DES").generateSecret(dks1);
Cipher cipher=Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE,key);
//DES加密操作
byte[] cipherText=cipher.doFinal(str);
//System.out.println(cipherText.length);
ServletOutputStream sos=response.getOutputStream();
System.out.println(cipherText);//[B@641a034d
sos.write(cipherText);
//输出des加密后的字节流,为啥用输出流,这里人都傻掉了
sos.flush();
//清空缓冲区数据
sos.close();
//关闭流 %>
并且我这里报异常了,不知道为啥,好像是冲突了
看了下修补方案,似乎就是禁止访问/mobile/dbconfigreader.jsp这个页面
4.exp及利用
github上有现成的脚本
https://github.com/NS-Sp4ce/Weaver-OA-E-cology-Database-Leak
主要还是对显示在页面上的字节流进行des解密,完事
参考文章:
https://mp.weixin.qq.com/s/zTEUan_BtDDzuHzmd9pxYg
泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现的更多相关文章
- 泛微ecology OA系统某接口存在数据库配置信息泄露漏洞
2漏洞详情 攻击者可通过该漏洞页面直接获取到数据库配置信息,攻击者可通过访问存在漏洞的页面并解密从而获取数据库配置信息,如攻击者可直接访问数据库,则可直接获取用户数据,由于泛微e-cology默认数据 ...
- 泛微ecology OA系统在数据库配置信息泄露
漏洞描述 攻击者可通过该漏洞页面直接获取到数据库配置信息,攻击者可通过访问存在漏洞的页面并解密从而获取数据库配置信息,如攻击者可直接访问数据库,则可直接获取用户数据,由于泛微e-cology默认数据库 ...
- FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发
在之前的文章:FastAPI(六十七)实战开发<在线课程学习系统>接口开发--用户登陆接口开发,今天实战:用户 个人信息接口开发. 在开发个人信息接口的时候,我们要注意了,因为我们不一样的 ...
- 应用安全 - 软件漏洞 - 泛微OA漏洞汇总
SQL注入 前台SQL注入 用户名:admin' or password like 'c4ca4238a0b923820dcc509a6f75849b' and 'a'='a 密码: 1 验证页面参数 ...
- 基于Python的Webservice开发(四)-泛微OA的SOAP接口
一.功能需求 泛微e-cology可以在流程中调用Webservice接口实现与其他系统的联动等复杂功能.但是目前泛微文档中仅提供了调用的方法,但是没有关于接口的相关开发信息. 本次案例是用Pytho ...
- 分享泛微公司OA系统用于二次开发的sql脚本
本单位用的oa系统就是泛微公司的oa协同办公平台,下面是我对他进行二次开发统计用到的写数据库脚本,只做开发参考使用,对于该系统的二次开发技术交流可以加我q:2050372586 [仪表盘]格式sql编 ...
- 泛微OA e-cology 数据库接口信息泄露学习
泛微OA e-cology 数据库接口信息泄露 漏洞信息 攻击者可通过存在漏洞的页面直接获取到数据库配置信息.如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器:会将当前连 ...
- FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码
之前我们分享了FastAPI(六十八)实战开发<在线课程学习系统>接口开发--用户 个人信息接口开发.这次我们去分享实战开发<在线课程学习系统>接口开发--修改密码 我们梳理一 ...
- 通达OA任意用户登录漏洞复现
前言 今年hw挺火爆的,第一天上来就放王炸,直接搞得hw暂停 昨天晚上无聊,复现了一下通达oa的洞,也有现成的exp可以使用,比较简单 0x00 漏洞概述 通达OA是一套国内常用的办公系统,此次发现的 ...
随机推荐
- Adobe Illustrator 入门 新建 保存图片
下载 AI 的破解版 我这里用的是 Adobe_Illustrator CC 2019 Lite 精简特别版 V23.0.2 简体中文版 64位 安装略 新建文档 通常是 A4 图形绘制 选择 矩形工 ...
- Spring Security教程之基于方法的权限控制(十二)
目录 1.1 intercept-methods定义方法权限控制 1.2 使用pointcut定义方法权限控制 1.3 使用注解定义方法权限控制 1.3.1 JSR-25 ...
- [技术博客]微信小程序审核的注意事项及企业版小程序的申请流程
关于小程序审核及企业版小程序申请的一些问题 微信小程序是一个非常方便的平台.由于微信小程序可以通过微信直接进入,不需要下载,且可使用微信账号直接登录,因此具有巨大的流量优势.但是,也正是因为微信流量巨 ...
- 【转帖】Linux文件夹对比并提取的差分文件技巧-rsync的妙用
Linux文件夹对比并提取的差分文件技巧-rsync的妙用 [日期:2016-02-13] 来源:oschina.net 作者:mengshuai [字体:大 中 小] https://www.li ...
- 【实战经验】--Xilinx--IPCore--FIFO
2019.12.10补充 结论:先写进的数据在独处时位于高位,后写入的数据在低位,且排序单位为Byte,即先后写入0X01,0X02,读出后也为0x010x02,此外,在写入数据量达到读出数据位宽后5 ...
- ASp.net Core EF ActionFilterAttribute AOP
在项目中经常遇到一些数据的修改,很多时候业务方需要一个修改日志记录,这里我们计划用mssql数据库来存放日志记录,用EF来操作,记录日志可以用mvc的ActionFilterAttribute 来完成 ...
- Java学习:JDBC各类详解
JDBC各个类详解 代码实现: //1.导入驱动jar包 //2.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //3.获取数据库连对象 ...
- Replication:事务复制 Subscriber的主键列是只读的
在使用Transactional Replication时,Subscriber 被认为是“Read-Only”的 , All data at the Subscriber is “read-only ...
- FindWindow和FindWindowEx函数使用
FindWindow( lpClassName, {窗口的类名} lpWindowName: PChar {窗口的标题} ): HWND; {返回窗口的 ...
- C#使用表达式树动态调用方法并实现99乘法表
我们在使用C#编程的时候,经常使用反射来动态调用方法,但有时候需要动态的生成方法,下面介绍使用表达式树的方式来自动生成方法,并调用. 首先需要说明什么是表达式,熟悉Linq的程序猿都用过类似于下面的代 ...