泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现

1.简介(开场废话)

攻击者可通过存在漏洞的页面直接获取到数据库配置信息。如果攻击者可直接访问数据库,则可直接获取用户数据,甚至可以直接控制数据库服务器。

2.影响范围

漏洞涉及范围包括不限于8.0、9.0版

3.搭建个环境(其实环境不重要,信息泄露这个东西)

4.已知漏洞点出现在/mobile/dbconfigreader.jsp这个页面(开始胡乱分析。。。有错还希望师傅们指出来)

泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现

直接看源代码好了,搜了一圈没找到8.0的安装包,我太难了,借张图过来,嘿嘿嘿

来源:https://mp.weixin.qq.com/s/zTEUan_BtDDzuHzmd9pxYg

泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现

首先在这个页面获取数据库用户名密码,然后存储到变量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);//[
sos.write(cipherText);
//输出des加密后的字节流,为啥用输出流,这里人都傻掉了
sos.flush();
//清空缓冲区数据
sos.close();
//关闭流

%>

并且我这里报异常了,不知道为啥,好像是冲突了

泛微e-cology OA系统某接口存在数据库配置信息泄露漏洞复现

 看了下修补方案,似乎就是禁止访问/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