add: 添加对 Jakarta Servlet 的支持(SpringBoot 3.x/Tomcat 10.x)

This commit is contained in:
pen4uin
2024-08-25 18:55:49 +08:00
parent 4d43d247c1
commit 35367e7d06
30 changed files with 2062 additions and 20 deletions
@@ -59,6 +59,8 @@ public class CustomHelper implements IHelper {
enumShellType.add(Constants.SHELL_LISTENER);
enumShellType.add(Constants.SHELL_FILTER);
enumShellType.add(Constants.SHELL_INTERCEPTOR);
enumShellType.add(Constants.SHELL_JAKARTA_LISTENER);
enumShellType.add(Constants.SHELL_JAKARTA_FILTER);
shell_type.setEnumValue(enumShellType);
IArg gadgetType = ShellHelperPlugin.pluginHelper.createArg();
@@ -124,6 +126,18 @@ public class CustomHelper implements IHelper {
output_path.setDescription("自定义输出路径");
list.add(output_path);
IArg enable_bypass_jdk_module = ShellHelperPlugin.pluginHelper.createArg();
enable_bypass_jdk_module.setName("bypass_jdk_module");
enable_bypass_jdk_module.setType(7);
List<String> enumenableBypass = new ArrayList();
enumenableBypass.add(String.valueOf(false));
enumenableBypass.add(String.valueOf(true));
enable_bypass_jdk_module.setEnumValue(enumenableBypass);
enable_bypass_jdk_module.setDefaultValue(String.valueOf(false));
enable_bypass_jdk_module.setRequired(false);
enable_bypass_jdk_module.setDescription("绕过高版本 JDK Module 访问限制");
list.add(enable_bypass_jdk_module);
binder.setArgsList(list);
return binder;
}
@@ -151,6 +165,7 @@ public class CustomHelper implements IHelper {
if (config.getUrlPattern() == null) config.setUrlPattern("/*");
config.setInjectorSimpleClassName(CommonUtil.getSimpleName(config.getInjectorClassName()));
if (config.getSavePath() == null) config.setSavePath(System.getProperty("user.dir"));
if (customArgs.get("bypass_jdk_module") != null) config.setEnableBypassJDKModule(Boolean.parseBoolean((String) customArgs.get("bypass_jdk_module")));
config.setSavePath(CommonUtil.getFileOutputPath(config.getOutputFormat(), config.getInjectorSimpleClassName(), config.getSavePath()));
File f;
@@ -52,6 +52,8 @@ public class ProxyHelper implements IHelper {
enumShellType.add(Constants.SHELL_FILTER);
enumShellType.add(Constants.SHELL_LISTENER);
enumShellType.add(Constants.SHELL_INTERCEPTOR);
enumShellType.add(Constants.SHELL_JAKARTA_LISTENER);
enumShellType.add(Constants.SHELL_JAKARTA_FILTER);
shell_type.setEnumValue(enumShellType);
shell_type.setDefaultValue(Constants.SHELL_LISTENER);
shell_type.setRequired(true);
@@ -109,6 +111,18 @@ public class ProxyHelper implements IHelper {
output_path.setRequired(false);
output_path.setDescription("自定义输出路径");
list.add(output_path);
IArg enable_bypass_jdk_module = ShellHelperPlugin.pluginHelper.createArg();
enable_bypass_jdk_module.setName("bypass_jdk_module");
enable_bypass_jdk_module.setType(7);
List<String> enumenableBypass = new ArrayList();
enumenableBypass.add(String.valueOf(false));
enumenableBypass.add(String.valueOf(true));
enable_bypass_jdk_module.setEnumValue(enumenableBypass);
enable_bypass_jdk_module.setDefaultValue(String.valueOf(false));
enable_bypass_jdk_module.setRequired(false);
enable_bypass_jdk_module.setDescription("绕过高版本 JDK Module 访问限制");
list.add(enable_bypass_jdk_module);
binder.setArgsList(list);
return binder;
}
@@ -149,6 +163,7 @@ public class ProxyHelper implements IHelper {
config.setShellClassName(ClassNameUtil.getRandomShellClassName(config.getShellType()));
if (config.getShellSimpleClassName() == null)
config.setShellSimpleClassName(CommonUtil.getSimpleName(config.getShellClassName()));
if (customArgs.get("bypass_jdk_module") != null) config.setEnableBypassJDKModule(Boolean.parseBoolean((String) customArgs.get("bypass_jdk_module")));
config.setSavePath(CommonUtil.getFileOutputPath(config.getOutputFormat(), config.getInjectorSimpleClassName(), config.getSavePath()));
@@ -49,6 +49,8 @@ public class ShellHelper implements IHelper {
enumShellType.add(Constants.SHELL_LISTENER);
enumShellType.add(Constants.SHELL_FILTER);
enumShellType.add(Constants.SHELL_INTERCEPTOR);
enumShellType.add(Constants.SHELL_JAKARTA_LISTENER);
enumShellType.add(Constants.SHELL_JAKARTA_FILTER);
shell_type.setEnumValue(enumShellType);
shell_type.setDefaultValue("Listener");
@@ -134,6 +136,18 @@ public class ShellHelper implements IHelper {
output_path.setDescription("自定义输出路径");
list.add(output_path);
IArg enable_bypass_jdk_module = ShellHelperPlugin.pluginHelper.createArg();
enable_bypass_jdk_module.setName("bypass_jdk_module");
enable_bypass_jdk_module.setType(7);
List<String> enumenableBypass = new ArrayList();
enumenableBypass.add(String.valueOf(false));
enumenableBypass.add(String.valueOf(true));
enable_bypass_jdk_module.setEnumValue(enumenableBypass);
enable_bypass_jdk_module.setDefaultValue(String.valueOf(false));
enable_bypass_jdk_module.setRequired(false);
enable_bypass_jdk_module.setDescription("绕过高版本 JDK Module 访问限制");
list.add(enable_bypass_jdk_module);
binder.setArgsList(list);
return binder;
}
@@ -179,6 +193,7 @@ public class ShellHelper implements IHelper {
config.setShellClassName(ClassNameUtil.getRandomShellClassName(config.getShellType()));
if (config.getShellSimpleClassName() == null)
config.setShellSimpleClassName(CommonUtil.getSimpleName(config.getShellClassName()));
if (customArgs.get("bypass_jdk_module") != null) config.setEnableBypassJDKModule(Boolean.parseBoolean((String) customArgs.get("bypass_jdk_module")));
config.setSavePath(CommonUtil.getFileOutputPath(config.getOutputFormat(), config.getInjectorSimpleClassName(), config.getSavePath()));