• 泛微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

  • 相关阅读:
    你不知道的CSS(二) (转载)
    sass 使用
    前端常用工具介绍
    web端调用打印
    sublime 插件:Emmet
    Sublime text 安装Package Control
    Sublime Text 常用的16 个 Sublime Text 快捷键
    js中如何快速获取数组中的最大值最小值
    web app变革之rem
    前端工程需要会的技能
  • 原文地址:https://www.cnblogs.com/mke2fs/p/11787666.html
Copyright © 2020-2023  润新知