Apache Tomcat Ajp-CVE-2020-1938漏洞復現
環境搭建:
sudo docker pull duonghuuphuc/tomcat-8.5.32
sudo docker run -d -it -p 8080:8080 -p 8009:8009 --name ghostcat duonghuuphuc/tomcat-8.5.32
漏洞復現:
任意檔案讀取
任意檔案包含:
請求存在的jsp使其包含指定的檔案中的jsp程式碼
修復:
1.若不需要使用Tomcat AJP協議,可直接關閉AJP Connector,或將其監聽地址改為僅監聽本機localhost。
此時重啟tomcat即測試不成功
2.增加ajp connector金鑰認證方式
tomcat version7 version9
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET"/>
tomcat version8
tips:
影響範圍:
Apache Software Foundation Tomcat 6.*
Apache Software Foundation Tomcat 7.0.0 - 7.0.99
Apache Software Foundation Tomcat 8.0.0 - 8.5.50
Apache Software Foundation Tomcat 9.0.0 - 9.0.30
攻擊過程主要控制以下三個屬性,傳送的訊息如果包含著三個值,那麼serverlet將根據三個值屬性進行request請求的改造
poc地址:
https://github.com/0nise/CVE-2020-1938
參考:
https://blog.csdn.net/yiqiushi4748/article/details/104428847
https://mp.weixin.qq.com/s?__biz=MzI4NjE2NjgxMQ==&mid=2650241245&idx=1&sn=2ca66d99fafb82b17b9023e65a143d63&chksm=f3e2c2a9c4954bbfa58ed15d4647eab743d79375eb51853ab2aecacf5f5c85b862f91cc0d685&mpshare=1&scene=23&srcid=&sharer_sharetime=1582366241817&sharer_shareid=ae6683d6c0e7df9a0b7c15e7cacf6b3