mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-09 19:45:13 +02:00
31 lines
974 B
Java
31 lines
974 B
Java
|
|
// Micronaut `@Controller`, benign.
|
||
|
|
//
|
||
|
|
// Same shape as the vuln but echoes a constant string instead of
|
||
|
|
// concatenating the path variable into a shell command.
|
||
|
|
|
||
|
|
import io.micronaut.http.annotation.Controller;
|
||
|
|
import io.micronaut.http.annotation.Get;
|
||
|
|
|
||
|
|
import java.io.BufferedReader;
|
||
|
|
import java.io.InputStreamReader;
|
||
|
|
|
||
|
|
@Controller("/run")
|
||
|
|
public class Benign {
|
||
|
|
@Get("/{id}")
|
||
|
|
public String show(String id) throws Exception {
|
||
|
|
System.out.print("__NYX_SINK_HIT__\n");
|
||
|
|
String[] cmd = {"/bin/sh", "-c", "echo hello"};
|
||
|
|
Process p = Runtime.getRuntime().exec(cmd);
|
||
|
|
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||
|
|
StringBuilder out = new StringBuilder();
|
||
|
|
String line;
|
||
|
|
while ((line = reader.readLine()) != null) {
|
||
|
|
out.append(line);
|
||
|
|
out.append('\n');
|
||
|
|
System.out.println(line);
|
||
|
|
}
|
||
|
|
p.waitFor();
|
||
|
|
return out.toString();
|
||
|
|
}
|
||
|
|
}
|