适用于weblogic 8/9/10,都是采用DES加密
一、配置环境变量
在我的电脑-属性-高级-环境变量-系统变量的 CLASSPATH 中添加weblogic.jar路径
如: D:\bea\weblogic92\server\lib\weblogic.jar
二、编译、运行
我的电脑域目录为D:\bea\user_projects\domains\base_domain
从weblogic域目录(domain_home)\servers\AdminServer\security下的文件boot.properties得到weblogic控制台登陆的用户名、密码,已加密。如下
username={3DES}CkWXM0dA697kH3D9F1NOEA==
password={3DES}CkWXM0dA697kH3D9F1NOEA==
将用户名、密码替换到以下代码中。
import weblogic.security.internal.SerializedSystemIni;
import weblogic.security.internal.encryption.ClearOrEncryptedService;
import weblogic.security.internal.encryption.EncryptionService;
public class weblogic{
public static void main(String[] args) {
EncryptionService env=SerializedSystemIni.getExistingEncryptionService();
if(env==null){
System.out.println("需要设置变量:-Dweblogic.RootDirectory ");
}
ClearOrEncryptedService t= new ClearOrEncryptedService(env);
String str=t.decrypt("{3DES}CkWXM0dA697kH3D9F1NOEA==");
String str2=t.decrypt("{3DES}CkWXM0dA697kH3D9F1NOEA==");
System.out.println("用户名解密结果:"+str);
System.out.println("密码 解密结果:"+str2);
}
}
javac weblogic.java (注:在环境变量中正确配置JAVA_HOME确定javac能运行)。
java -Dweblogic.RootDirectory=D:\bea\user_projects\domains\base_domain weblogic
其中Dweblogic.RootDirectory为weblogic安装的域目录如:D:\bea\user_projects\domains\base_domain
该方法也可以用来破解weblogic配置数据库连接jdbc的密码,取出jdbc配置文件ProductDataSource-5236-jdbc.xml中的password-encrypted
该文件路径为D:\bea\user_projects\domains\base_domain\config\jdbc
注意事项:
如果域目录Dweblogic.RootDirectory跟boot.properties中加密密文不匹配(即不是同一个域目录下的,因为des的密钥不同),会报以下错误:
Exception in thread "main" weblogic.security.internal.encryption.EncryptionServiceException:
com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding:invalid pad byte.
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:78)
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:94)
at weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:87)
at weblogic.main(weblogic.java:14)
Caused by: com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.
at com.rsa.jsafe.JA_PKCS5Padding.a(Unknown Source)
at com.rsa.jsafe.JG_BlockCipher.decryptFinal(Unknown Source)
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:68)