Files
MemShellParty/integration-test/src/test/java/com/reajason/javaweb/integration/VulTool.java
T

97 lines
3.4 KiB
Java

package com.reajason.javaweb.integration;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.junit.jupiter.api.Assertions;
import java.io.IOException;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author ReaJason
* @since 2024/11/30
*/
@Slf4j
public class VulTool {
@SneakyThrows
public static void urlIsOk(String url) {
Request request = new Request.Builder()
.url(url).build();
try (Response response = new OkHttpClient().newCall(request).execute()) {
System.out.println(response.body().string());
Assertions.assertTrue(response.isSuccessful());
}
}
@SneakyThrows
public static void uploadJspFileToServer(String uploadUrl, String filename, String fileContent) {
MediaType mediaType = MediaType.parse("text/plain");
RequestBody fileRequestBody = RequestBody.create(fileContent, mediaType);
MultipartBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", filename, fileRequestBody)
.build();
Request request = new Request.Builder()
.url(uploadUrl).post(requestBody)
.build();
try (Response response = new OkHttpClient().newCall(request).execute()) {
System.out.println(response.body().string());
assertEquals(200, response.code());
}
}
@SneakyThrows
public static void postIsOk(String uploadUrl, String data) {
RequestBody requestBody = new FormBody.Builder()
.add("data", data)
.build();
Request request = new Request.Builder()
.header("Content-Type", "application/x-www-form-urlencoded")
.url(uploadUrl).post(requestBody)
.build();
try (Response response = new OkHttpClient().newCall(request).execute()) {
System.out.println(response.body().string());
Assertions.assertNotEquals(404, response.code());
}
}
@SneakyThrows
public static String post(String uploadUrl, String data) {
RequestBody requestBody = new FormBody.Builder()
.add("data", data)
.build();
Request request = new Request.Builder()
.header("Content-Type", "application/x-www-form-urlencoded")
.url(uploadUrl).post(requestBody)
.build();
try (Response response = new OkHttpClient().newCall(request).execute()) {
return response.body().string();
}
}
@SneakyThrows
public static void xxlJobExecutor(String url, String data) {
OkHttpClient client = new OkHttpClient();
log.info(data);
RequestBody body = RequestBody.create(data, MediaType.parse("application/json"));
Request request = new Request.Builder()
.url(url)
.post(body)
.addHeader("Connection", "close")
.addHeader("XXL-JOB-ACCESS-TOKEN", "default_token")
.addHeader("Content-Type", "application/json")
.build();
try (Response response = client.newCall(request).execute()) {
assertEquals(200, response.code());
Thread.sleep(1000); // wait for job execute
log.info(response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}