refactor: rename packer

This commit is contained in:
ReaJason
2025-01-30 20:49:56 +08:00
parent b9c05453ef
commit 2440a2fb2e
6 changed files with 25 additions and 16 deletions
@@ -63,11 +63,7 @@ public enum Packers {
* 脚本引擎打包器 * 脚本引擎打包器
*/ */
ScriptEngine(new ScriptEnginePacker()), ScriptEngine(new ScriptEnginePacker()),
Rhino(new RhinoPacker()),
/**
* 反序列化打包器
*/
Deserialize(new DeserializePacker()),
/** /**
* EL * EL
@@ -78,19 +74,23 @@ public enum Packers {
Aviator(new AviatorPacker()), Aviator(new AviatorPacker()),
JXPath(new JXPathPacker()), JXPath(new JXPathPacker()),
JEXL(new JEXLPacker()), JEXL(new JEXLPacker()),
BSH(new BeanShellPacker()), BeanShell(new BeanShellPacker()),
SpEL(new SpELPacker()), SpEL(new SpELPacker()),
SpELScriptEngine(new SpELScriptEnginePacker(), SpELPacker.class), SpELScriptEngine(new SpELScriptEnginePacker(), SpELPacker.class),
SpELSpringIOUtils(new SpELSpringIOUtilsGzipPacker(), SpELPacker.class), SpELSpringIOUtils(new SpELSpringIOUtilsGzipPacker(), SpELPacker.class),
SpELSpringUtils(new SpELSpringUtilsPacker(), SpELPacker.class), SpELSpringUtils(new SpELSpringUtilsPacker(), SpELPacker.class),
Groovy(new GroovyPacker()),
Freemarker(new FreemarkerPacker()), Freemarker(new FreemarkerPacker()),
Velocity(new VelocityPacker()), Velocity(new VelocityPacker()),
Groovy(new GroovyPacker()),
Rhino(new RhinoPacker()),
JinJava(new JinJavaPacker()), JinJava(new JinJavaPacker()),
/**
* 反序列化打包器
*/
Deserialize(new DeserializePacker()),
AgentJar(new AgentJarPacker()), AgentJar(new AgentJarPacker()),
XxlJob(new XxlJobPacker()), XxlJob(new XxlJobPacker()),
@@ -9,11 +9,9 @@ import com.reajason.javaweb.memshell.packer.Packers;
* @since 2025/1/30 * @since 2025/1/30
*/ */
public class RhinoPacker implements Packer { public class RhinoPacker implements Packer {
String template = "new javax.script.ScriptEngineManager().getEngineByName('js').eval('{{script}}')";
@Override @Override
public String pack(GenerateResult generateResult) { public String pack(GenerateResult generateResult) {
String script = Packers.ScriptEngine.getInstance().pack(generateResult); return Packers.ScriptEngine.getInstance().pack(generateResult);
return template.replace("{{script}}", script);
} }
} }
@@ -152,7 +152,7 @@ public class ShellAssertionTool {
case Aviator -> VulTool.postData(url + "/aviator", content); case Aviator -> VulTool.postData(url + "/aviator", content);
case Groovy -> VulTool.postData(url + "/groovy", content); case Groovy -> VulTool.postData(url + "/groovy", content);
case Rhino -> VulTool.postData(url + "/rhino", content); case Rhino -> VulTool.postData(url + "/rhino", content);
case BSH -> VulTool.postData(url + "/bsh", content); case BeanShell -> VulTool.postData(url + "/bsh", content);
case JinJava -> VulTool.postData(url + "/jinjava", content); case JinJava -> VulTool.postData(url + "/jinjava", content);
case Freemarker -> VulTool.postData(url + "/freemarker", content); case Freemarker -> VulTool.postData(url + "/freemarker", content);
case Velocity -> VulTool.postData(url + "/velocity", content); case Velocity -> VulTool.postData(url + "/velocity", content);
@@ -49,7 +49,7 @@ public class Tomcat8ExpressionContainerTest {
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JEXL), arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JEXL),
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JXPath), arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JXPath),
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Aviator), arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Aviator),
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.BSH), arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.BeanShell),
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Groovy), arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Groovy),
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Rhino), arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.Rhino),
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JinJava), arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JinJava),
File diff suppressed because one or more lines are too long
+12 -1
View File
@@ -61,6 +61,12 @@ export const resources = {
Deserialize: "Deserialize(Only CB4, 1.9.x)", Deserialize: "Deserialize(Only CB4, 1.9.x)",
ScriptEngine: "ScriptEngine", ScriptEngine: "ScriptEngine",
XxlJob: "XXL-JOB Executor", XxlJob: "XXL-JOB Executor",
JinJava: "JinJava",
Aviator: "Aviator",
JXPath: "JXPath",
JEXL: "JEXL",
Rhino: "Rhino",
BeanShell: "BeanShell",
}, },
}, },
tips: { tips: {
@@ -160,8 +166,13 @@ export const resources = {
SpEL: "SpEL 表达式", SpEL: "SpEL 表达式",
OGNL: "OGNL 表达式", OGNL: "OGNL 表达式",
MVEL: "MVEL 表达式", MVEL: "MVEL 表达式",
JEXL: "JEXL 表达式",
BeanShell: "BeanShell 表达式",
Aviator: "Aviator 表达式",
JXPath: "JXPath 表达式",
Deserialize: "反序列化(仅支持 CB4, 1.9.x)", Deserialize: "反序列化(仅支持 CB4, 1.9.x)",
ScriptEngine: "脚本引擎", ScriptEngine: "内置脚本引擎",
Rhino: "Rhino 脚本引擎",
}, },
}, },
tips: { tips: {