暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

druid密码解密

only security 2021-11-16
3439

帅杨说过,想学好安全,还是得了解开发。

通常我们拿到服务器权限后,需要对服务器进行信息收集,如收集数据库配置信息、桌面账号密码等等。

有次遇到了一个properties文件里遇到了druid加密的账号、密码

乍一看,发现不是明文,以为没辙了,但是仔细想想,如果是本地的密码,那么肯定自己能识别,总不能自己都识别不了吧,去查看*.xml文件,在spring里发现了,看到了"druid"字样

后来搜索资料,发现了使用了druid加密,网上能找到的资料也比较少,这里做一个简单的记录

druid加密应该是有两种的,一种直接加密(1.0.16以前),还有一种(1.0.16以后)

0x01  1.0.16以前版本

形如上文提到的形式,只有加密的password

加密:

使用druid的jar对密码进行加密获取字符串

    java -cp druid-1.0.15.jar  com.alibaba.druid.filter.config.ConfigTools 123456pwd
    复制

    加密字符串为:

    DtZrDfgC+aEicYlH09WoJC6ptuHvj5YQdStXhNHKeV7CvpX5psusl0UDK4236TC0/1GxzdkHE39vPFCkjXLLgA==

    解密:

    依赖如下:

    pom.xml

      <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.15</version>
      </dependency>
      复制

      将加密得到的字符串带入ConfigTools.decrypt()进行解密

        import com.alibaba.druid.filter.config.ConfigTools;


        public class druidOutputpassword {
        public static void main(String[] args) throws Exception {
        System.out.println(ConfigTools.decrypt("hbZoFfr14R2yGuWJwbUtYdXjF40Df5sXbHSJYzGECsK0p1W4bmrM64SJKU0rmWo+yjUSrtU1Drb+0eGhQT3Xlg=="));
        }
        }
        复制

        得到明文密码

        0x02  1.0.16以后版本

        1.0.16以后版本就有点不一样了,用到了公私钥加密,在配置文件中形如

          ## JDBC set
          jdbc.url=jdbc\:mysql\://localhost\:3306/edu_demo?useUnicode\=true&characterEncoding\=utf-8
          jdbc.username=root
          jdbc.password=Obsbr4gd1oVyYr+k4KQdUMNYgKMWdDibsNJTabnph+yPmxjc6tUrT1GNsPDqa9ZvTF9QvaRD86H+Zn/H+yz2jA==
          jdbc.publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKHGwq7q2RmwuRgKxBypQHw0mYu4BQZ3eMsTrdK8E6igRcxsobUC7uT0SoxIjl1WveWniCASejoQtn/BY6hVKWsCAwEAAQ==
          复制

          加密:

          使用druid的jar对密码进行加密获取字符串

          加密后的字符串为:

          Obsbr4gd1oVyYr+k4KQdUMNYgKMWdDibsNJTabnph+yPmxjc6tUrT1GNsPDqa9ZvTF9QvaRD86H+Zn/H+yz2jA==

          加密的公钥为:

          MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKHGwq7q2RmwuRgKxBypQHw0mYu4BQZ3eMsTrdK8E6igRcxsobUC7uT0SoxIjl1WveWniCASejoQtn/BY6hVKWsCAwEAAQ==

          解密:

          依赖如下:

          pom.xml

            <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.18</version>
            </dependency>
            复制

            将加密后的字符串、加密公钥依次替换cipherText、publicKey

              import com.alibaba.druid.filter.config.ConfigTools;


              public class druid1016after {
              public static void main(String[] args) throws Exception {
              String cipherText = "Obsbr4gd1oVyYr+k4KQdUMNYgKMWdDibsNJTabnph+yPmxjc6tUrT1GNsPDqa9ZvTF9QvaRD86H+Zn/H+yz2jA==";
              String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKHGwq7q2RmwuRgKxBypQHw0mYu4BQZ3eMsTrdK8E6igRcxsobUC7uT0SoxIjl1WveWniCASejoQtn/BY6hVKWsCAwEAAQ==";
              String decryptPassword = ConfigTools.decrypt(publicKey, cipherText);
                      System.out.println("decryptPassword:" + decryptPassword);
              }
              }
              复制

              可得到明文密码


              druid.jar下载链接:

              https://repo1.maven.org/maven2/com/alibaba/druid/1.2.8/

              https://repo1.maven.org/maven2/com/alibaba/druid/1.0.15/

              推荐可以本地试一试,这里也可以回复"druid"到本公众号获取打包好的druid.jar的链接。

              文章转载自only security,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论