refactor: use commonUtil for packageName

This commit is contained in:
ReaJason
2026-01-12 02:12:34 +08:00
parent 4ae264a091
commit f170ca4514
24 changed files with 70 additions and 56 deletions
@@ -278,13 +278,9 @@ public class TomcatFilterInjector {
@SuppressWarnings("all") @SuppressWarnings("all")
public static Object getFieldValue(Object obj, String name) throws NoSuchFieldException, IllegalAccessException { public static Object getFieldValue(Object obj, String name) throws NoSuchFieldException, IllegalAccessException {
try { Field field = getField(obj, name);
Field field = getField(obj, name); field.setAccessible(true);
field.setAccessible(true); return field.get(obj);
return field.get(obj);
} catch (NoSuchFieldException ignored) {
}
return null;
} }
@@ -42,7 +42,6 @@ public class TomcatFilterProbe {
if (filterMaps == null || filterMaps.length == 0) return Collections.emptyList(); if (filterMaps == null || filterMaps.length == 0) return Collections.emptyList();
Object[] filterDefs = (Object[]) invokeMethod(context, "findFilterDefs"); Object[] filterDefs = (Object[]) invokeMethod(context, "findFilterDefs");
Map<?, ?> filterConfigs = (Map<?, ?>) getFieldValue(context, "filterConfigs");
for (Object fm : filterMaps) { for (Object fm : filterMaps) {
String name = (String) invokeMethod(fm, "getFilterName"); String name = (String) invokeMethod(fm, "getFilterName");
@@ -53,8 +52,8 @@ public class TomcatFilterProbe {
for (Object def : filterDefs) { for (Object def : filterDefs) {
if (!name.equals(invokeMethod(def, "getFilterName"))) continue; if (!name.equals(invokeMethod(def, "getFilterName"))) continue;
String cls = (String) invokeMethod(def, "getFilterClass"); String cls = (String) invokeMethod(def, "getFilterClass");
if ((cls == null || "N/A".equals(cls)) && filterConfigs != null) { if (cls == null) {
Object config = filterConfigs.get(name); Object config = invokeMethod(context, "findFilterConfig", new Class[]{String.class}, new Object[]{name});
Object filter = config != null ? invokeMethod(config, "getFilter") : null; Object filter = config != null ? invokeMethod(config, "getFilter") : null;
if (filter != null) cls = filter.getClass().getName(); if (filter != null) cls = filter.getClass().getName();
} }
@@ -194,10 +193,12 @@ public class TomcatFilterProbe {
return contexts; return contexts;
} }
public static Object invokeMethod(Object obj, String methodName){
return invokeMethod(obj, methodName, null, null);
}
@SuppressWarnings("all") @SuppressWarnings("all")
public static Object invokeMethod(Object obj, String methodName) { public static Object invokeMethod(Object obj, String methodName, Class<?>[] paramClazz, Object[] param) {
Class<?>[] paramClazz = null;
Object[] param = null;
try { try {
Class<?> clazz = (obj instanceof Class) ? (Class<?>) obj : obj.getClass(); Class<?> clazz = (obj instanceof Class) ? (Class<?>) obj : obj.getClass();
Method method = null; Method method = null;
@@ -111,38 +111,35 @@ public class CommonUtil {
return className + "$Proxy0$$Lambda$1"; return className + "$Proxy0$$Lambda$1";
} }
public static String generateShellClassName(String server, String shellType) { public static String getWebPackageNameForServer(String server) {
String packageName;
switch (server) { switch (server) {
case Jetty: case Jetty:
packageName = "org.eclipse.jetty.servlet.handlers"; return "org.eclipse.jetty.servlet.handlers";
break;
case Undertow: case Undertow:
packageName = "io.undertow.servlet.handlers"; return "io.undertow.servlet.handlers";
break;
case SpringWebMvc: case SpringWebMvc:
packageName = "org.springframework.boot.mvc.handlers"; return "org.springframework.boot.mvc.handlers";
break;
case SpringWebFlux: case SpringWebFlux:
packageName = "org.springframework.boot.webflux.handlers"; return "org.springframework.boot.webflux.handlers";
break;
case WebSphere: case WebSphere:
packageName = "com.ibm.ws.webcontainer.handlers"; return "com.ibm.ws.webcontainer.handlers";
break;
case WebLogic: case WebLogic:
packageName = "weblogic.servlet.internal.handlers"; return "weblogic.servlet.internal.handlers";
break;
case Resin: case Resin:
packageName = "com.caucho.server.dispatch.handlers"; return "com.caucho.server.dispatch.handlers";
break;
case BES: case BES:
packageName = "com.bes.enterprise.webtier.web.handlers"; return "com.bes.enterprise.webtier.web.handlers";
break; case Apusic:
return "com.apusic.web.handlers";
case InforSuite:
return "com.cvicse.inforsuite.web.handlers";
default: default:
packageName = "org.apache.http.web.handlers"; return "org.apache.http.web.handlers";
break;
} }
return packageName }
public static String generateShellClassName(String server, String shellType) {
return getWebPackageNameForServer(server)
+ "." + getRandomString(5) + "." + getRandomString(5)
+ "." + MIDDLEWARE_NAMES[new Random().nextInt(MIDDLEWARE_NAMES.length)] + shellType; + "." + MIDDLEWARE_NAMES[new Random().nextInt(MIDDLEWARE_NAMES.length)] + shellType;
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
@@ -107,6 +108,6 @@ public class GlassFish3ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
@@ -20,7 +21,6 @@ import org.testcontainers.junit.jupiter.Testcontainers;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.time.Duration;
import java.util.List; import java.util.List;
import static com.reajason.javaweb.integration.ContainerTool.getUrl; import static com.reajason.javaweb.integration.ContainerTool.getUrl;
@@ -108,6 +108,6 @@ public class GlassFish4ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
@@ -100,6 +101,6 @@ public class GlassFish501ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
@@ -101,6 +102,6 @@ public class GlassFish510ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
@@ -101,6 +102,6 @@ public class GlassFish6ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
@@ -107,6 +108,6 @@ public class GlassFish7ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -96,6 +97,6 @@ public class Jboss423ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.JBoss))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -94,6 +95,6 @@ public class Jboss510ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.JBoss))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -94,6 +95,6 @@ public class Jboss610ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.JBoss))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -94,6 +95,6 @@ public class Jboss711ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.JBoss))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
@@ -106,6 +107,6 @@ public class Payara5201ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
@@ -100,6 +101,6 @@ public class Payara520225ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
@@ -101,6 +102,6 @@ public class Payara620222ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getGlassFishFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.GlassFish))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
@@ -108,6 +109,6 @@ public class Tomcat10ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.bytebuddy.jar.asm.Opcodes; import net.bytebuddy.jar.asm.Opcodes;
@@ -95,6 +96,6 @@ public class Tomcat11ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.bytebuddy.jar.asm.Opcodes; import net.bytebuddy.jar.asm.Opcodes;
@@ -96,6 +97,6 @@ public class Tomcat11JRE21ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
@@ -109,6 +110,6 @@ public class Tomcat5ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -101,6 +102,6 @@ public class Tomcat6ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -103,6 +104,6 @@ public class Tomcat7ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -105,6 +106,6 @@ public class Tomcat8ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }
@@ -7,6 +7,7 @@ import com.reajason.javaweb.integration.probe.DetectionTool;
import com.reajason.javaweb.memshell.ShellTool; import com.reajason.javaweb.memshell.ShellTool;
import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.packer.Packers; import com.reajason.javaweb.packer.Packers;
import com.reajason.javaweb.utils.CommonUtil;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -95,6 +96,6 @@ public class Tomcat9ContainerTest {
String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe()); String data = VulTool.post(url + "/b64", DetectionTool.getTomcatFilterProbe());
List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app"); List<String> filter = ProbeAssertion.getFiltersForContext(data, "/app");
String filterName = ProbeAssertion.extractFilterName(filter.get(0)); String filterName = ProbeAssertion.extractFilterName(filter.get(0));
assertThat(filterName, anyOf(startsWith("org.apache.http.web.handlers"))); assertThat(filterName, anyOf(startsWith(CommonUtil.getWebPackageNameForServer(Server.Tomcat))));
} }
} }