nyx/tests/dynamic_fixtures/java/servlet_dopost/Vuln.java
2026-06-05 10:16:30 -05:00

23 lines
796 B
Java

// Phase 14 — servlet doPost, vulnerable.
//
// Reads the POST body from the request stub and feeds it through
// `/bin/sh -c`.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Vuln {
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws Exception {
System.out.print("__NYX_SINK_HIT__\n");
String input = req.getBody();
if (input == null) input = "";
String[] cmd = {"/bin/sh", "-c", "echo hello " + input};
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
resp.write(line + "\n");
}
p.waitFor();
}
}