From 17c54cd91982a9a943915ed034348972b2a25844 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Wed, 3 Sep 2025 18:29:10 +0800 Subject: [PATCH] test: add probe no magic prefix --- .../javaweb/integration/ProbeAssertion.java | 28 +++++++++++++++++++ .../probe/tomcat/Tomcat8ContainerTest.java | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/ProbeAssertion.java b/integration-test/src/test/java/com/reajason/javaweb/integration/ProbeAssertion.java index 41b11c5d..60945738 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/ProbeAssertion.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/ProbeAssertion.java @@ -49,6 +49,34 @@ public class ProbeAssertion { } } + @SneakyThrows + public static void responseBytecodeWithoutPrefixIsOk(String url, String server, int targetJreVersion) { + ProbeConfig probeConfig = ProbeConfig.builder() + .probeMethod(ProbeMethod.ResponseBody) + .probeContent(ProbeContent.Bytecode) + .targetJreVersion(targetJreVersion) + .debug(true) + .shrink(true) + .build(); + String reqParamName = "payload"; + ResponseBodyConfig responseBodyConfig = ResponseBodyConfig.builder() + .server(server) + .reqParamName(reqParamName) + .build(); + ProbeShellResult probeResult = ProbeShellGenerator.generate(probeConfig, responseBodyConfig); + RequestBody requestBody = new FormBody.Builder() + .add("data", probeResult.getShellBytesBase64Str()) + .add(reqParamName, DetectionTool.getServerDetection().replace("yv66vgAAAD", "")) + .build(); + Request request = new Request.Builder() + .header("Content-Type", "application/x-www-form-urlencoded") + .url(url + "/b64").post(requestBody) + .build(); + try (Response response = new OkHttpClient().newCall(request).execute()) { + assertEquals(server, response.body().string()); + } + } + @SneakyThrows public static void responseCommandIsOk(String url, String server, int targetJreVersion) { ProbeConfig probeConfig = ProbeConfig.builder() diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat8ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat8ContainerTest.java index 86fef798..2909cb33 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat8ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat8ContainerTest.java @@ -69,6 +69,6 @@ public class Tomcat8ContainerTest { void testBytecodeReqParamResponseBody() { String url = getUrl(container); ProbeAssertion.responseBytecodeIsOk(url, Server.Tomcat, Opcodes.V1_8); + ProbeAssertion.responseBytecodeWithoutPrefixIsOk(url, Server.Tomcat, Opcodes.V1_8); } - } \ No newline at end of file