Java安全之Webshell免杀 您所在的位置:网站首页 jsp的一句话木马 Java安全之Webshell免杀

Java安全之Webshell免杀

2023-12-08 08:08| 来源: 网络整理| 查看: 265

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"

image-20221011165839371

image-20221011165936341

CDATA特性

这里是要是利用jspx的进行进行免杀,jspx其实就是xml格式的jsp文件

替换成

image-20221011170143413

image-20221011170155658

Java换行特性

利用java换行的特性绕过杀软的规则

Runtime run = Runtime.getRuntime(); 上面与下面的java代码是一样可执行的 Runtime run = Runtime.getRuntime();

image-20221011170741981

image-20221011170802384

Java反射特性

杀软的规则有检测关键词和实例化类的检测,这时候我们可以利用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类中的方法时,传递我们获得的对象,这样就可以调用

image-20221011174135468

image-20221011173459744

Java继承特性

相当于给类改了名,试了试可以绕过某些杀软的规则

class aaa extends bbb{} aaa a1 = new aaa(); 冰蝎免杀马

自己根据D盾的检测,写了一个马,能过一些检测,可以参考一下

原马:

免杀马:

String pp =\u0022\u0050\u004f\u0053\u0054\u0022;

image-20221011180623843

image-20221011180658673



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有