CVE-2019-0232:Apache Tomcat RCE復現
0X00漏洞簡介
該漏洞是由于Tomcat CGI將命令列引數傳遞給Windows程式的方式存在錯誤,使得CGIServlet被命令注入影響,
該漏洞只影響Windows平臺,要求啟用了CGIServlet和enableCmdLineArguments引數,但是CGIServlet和enableCmdLineArguments引數默認情況下都不啟用,
漏洞影響范圍: 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
0X01漏洞環境搭建
1.進行變數配置:
首先下載jdk檔案安裝,成功后開始變數配置,
以win7為例開始→我的電腦→右鍵屬性→高級系統設定→環境變數→系統變數→新建
新建變數名為JAVA_HOME的變數變數值為你安裝jdk的路徑
例:變數名:JAVA_HOME變數值:C:\Program Files (x86)\Java\jdk1.8.0_73
新建變數名為JRE_HOME的變數變數值為你安裝jdk檔案夾中jre檔案夾的路徑
例:變數名JRE_HOME變數值: C:\Program Files (x86)\Java\jdk1.8.0_73\jre
新建變數名為CLASSPATH的變數變數值為.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(ps:前面有個點)
在變數path新增變數值為;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(ps:前面有;)
配好變數后打開cmd命令框輸入java –version出現java版本號等資訊則說明變數安裝成功,


2.將你的tomcat檔案解壓到你要安裝的檔案夾,進入檔案夾中的bin檔案夾,使用cmd命令執行startup.bat檔案,出現加載界面,待加載完成后在瀏覽器訪問http://localhost:8080界面訪問成功則說明tomcat安裝成功,
https://archive.apache.org/dist/tomcat/ 該鏈接為tomcat各個版本下載鏈接


3.修改組態檔
Tomcat的CGI_Servlet組件默認是關閉的,在 conf/web.xml 中找到注釋的CGIServlet部分,去掉注釋,并配置enableCmdLineArguments和executable(需要取消掉注釋的一共是倆部分)
(ps:下方紅框內的內容需要手打,原檔案本來沒有這個引數,9.0版本默認關閉)


接著修改conf/context.xml中的<Context>添加privileged="true"陳述句

然后在C:\Users\lenovo\Desktop\apache-tomcat-9.0.13\apache-tomcat-9.0.13
\webapps\ROOT\WEB-INF下創建一個cgi-bin檔案夾,并在檔案夾內創建一個bat檔案可以什么都不寫或者寫一些bat陳述句,


到此所有的環境準備完成,
4.重啟tomcat服務(確保配置生效)
5.利用payload為:
http://localhost:8080/cgi-bin/hello.bat?&C%3A%5CWindows%5CSystem32%5Ccalc.exe
該payload為打開計算器
訪問之后成功打開計算器

0X02漏洞原理
漏洞相關的代碼在 tomcat\java\org\apache\catalina\servlets\CGIServlet.java 中,CGIServlet提供了一個cgi的呼叫介面,在啟用 enableCmdLineArguments 引數時,會根據RFC 3875來從Url引數中生成命令列引數,并把引數傳遞至Java的 Runtime 執行, 這個漏洞是因為 Runtime.getRuntime().exec 在Windows中和Linux中底層實作不同導致的,
但是在tomcat9.0.13中已經嚴格限制了有效字符
0X03漏洞修復
因為在9.版本以上CGIServlet和enableCmdLineArguments引數默認情況下都不啟用
所以影響不是很大,
開發者在URLDecoder.decode解碼后增加一個正則運算式驗證,毋庸置疑,目的肯定是檢測url解碼后的字串輸入的合法性,
因此最有效的修復方式是:
- 禁用enableCmdLineArguments引數,
- 在conf/web.xml中覆寫采用更嚴格的引數合法性檢驗規則,
- 升級tomcat到9.0.17以上版本,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/3954.html
標籤:訊息安全
