test: add probe no magic prefix

This commit is contained in:
ReaJason
2025-09-12 22:51:50 +08:00
parent 9159de1781
commit 17c54cd919
2 changed files with 29 additions and 1 deletions
@@ -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()
@@ -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);
}
}