feat: support jetty handler shell

This commit is contained in:
ReaJason
2025-12-08 01:43:41 +08:00
parent e4e86d2c8d
commit 504dde9335
35 changed files with 901 additions and 113 deletions
@@ -144,18 +144,16 @@ export default function MainConfigCard({
if (value === "TongWeb") {
setServerVersionOptions([
...defaultServerVersionOptions,
{
name: "6",
value: "6",
},
{
name: "7",
value: "7",
},
{
name: "8",
value: "8",
},
{ name: "6", value: "6" },
{ name: "7", value: "7" },
{ name: "8", value: "8" },
]);
} else if (value === "Jetty") {
setServerVersionOptions([
...defaultServerVersionOptions,
{ name: "6", value: "6" },
{ name: "7+", value: "7+" },
{ name: "12", value: "12" },
]);
} else {
setServerVersionOptions(defaultServerVersionOptions);
+2 -2
View File
@@ -47,7 +47,7 @@
"tips.execute-command1": "Execute the command to inject: java -jar /path/to/agent.jar pid",
"tips.get-pid": "Get the process pid of the target jvm (use jps or ps)",
"tips.handlerUrlPattern": "HandlerMethod/HandlerFunction type requires a specific URL Pattern, e.g., /hello_handler",
"tips.serverVersion": "serverVersion is required for TongWeb Valve",
"tips.serverVersion": "serverVersion is required",
"tips.servletUrlPattern": "Servlet type requires a specific URL Pattern, e.g., /hello_servlet",
"tips.shellBytesEmpty": "Shell bytes is empty, please generate shell first",
"tips.shellToolNotSelected": "Please select a shell tool type first",
@@ -58,4 +58,4 @@
"tips.download-jar": "Download the jar file and upload it to the public network server, so that it can be accessed through the http link to download",
"tips.load-jar-with-scriptenginemanager": "Load the jar file with javax.script.ScriptEngineManager to implement injection",
"tips.trigger-injector-class-loading": "Trigger the injector class loading with RCE vulnerability"
}
}
+2 -2
View File
@@ -47,7 +47,7 @@
"tips.execute-command1": "执行命令进行注入:java -jar /path/to/agent.jar pid",
"tips.get-pid": "获取目标 jvm 的进程 pid(使用 jps 或 ps",
"tips.handlerUrlPattern": "HandlerMethod/HandlerFunction 类型的需要填写具体的 URL Pattern,例如 /hello_handler",
"tips.serverVersion": "TongWeb Valve 需要指定 serverVersion",
"tips.serverVersion": "当前挂载类型必须指定 serverVersion",
"tips.servletUrlPattern": "Servlet 类型的需要填写具体的 URL Pattern,例如 /hello_servlet",
"tips.shellBytesEmpty": "内存马字节码为空,无法下载,请先生成内存马",
"tips.shellToolNotSelected": "请先选择内存马工具类型",
@@ -58,4 +58,4 @@
"tips.download-jar": "下载 jar 包并上传至公网服务器,使其能通过 http 链接访问下载",
"tips.load-jar-with-scriptenginemanager": "通过 RCE 漏洞使用 javax.script.ScriptEngineManager 加载 jar 包实现注入",
"tips.trigger-injector-class-loading": "通过 RCE 漏洞触发注入器类加载"
}
}
+1 -1
View File
@@ -78,7 +78,7 @@ export function shouldHidden(shellType: string | undefined) {
shellType.endsWith("Valve") ||
shellType.startsWith("Agent") ||
shellType.endsWith("Interceptor") ||
shellType.endsWith("NettyHandler") ||
shellType.endsWith("Handler") ||
shellType.endsWith("WebFilter")
);
}
+13
View File
@@ -99,6 +99,19 @@ export const useYupValidationResolver = (
};
}
if (
values.server === "Jetty" &&
(values.shellType === "Handler"
|| values.shellType === "JakartaHandler"
) &&
values.serverVersion === "unknown"
) {
errors[serverVersion] = {
type: "custom",
message: t("memshell:tips.serverVersion"),
};
}
return {
values,
errors,