CVE-2020-1938復現


一、漏洞描述
        Tomcat是Apache開源組織開發的用於處理HTTP服務的項目,兩者都是免費的,都可以做為獨立的Web服務器運行。Apache Tomcat服務器存在文件包含漏洞,攻擊者可利用該漏洞讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,如:webapp 配置文件或源代碼等。 

二、漏洞危害等級

        高

三、影響版本

Apache Tomcat 6
Tomcat 7系列  < 7.0.100
Tomcat 8系列 <  8.5.51
Tomcat 9 系列 < 9.0.31

四、漏洞原理

           tomcat默認的conf/server.xml中配置了2個Connector,一個為8080的對外提供的HTTP協議端口,另外一個就是默認的8009 AJP協議端口,兩個端口默認均監聽在外網ip。
          tomcat在接收ajp請求的時候調用org.apache.coyote.ajp.AjpProcessor來處理ajp消息,prepareRequest將ajp里面的內容取出來設置成request對象的Attribute屬性。 可以通過此種特性從而可以控制request對象的下面三個Attribute屬性
javax.servlet.include.request_uri
javax.servlet.include.path_info
javax.servlet.include.servlet_path
     再通過控制ajp控制的上述三個屬性來讀取文件,通過操控上述三個屬性從而可以讀取到應用目錄下的任何文件。

五、漏洞復現

     這里下載了apache-tomcat-8.5.32版本進行漏洞復現 目前網上有多個POC版本流傳,這里列局其中兩個,還有很多的SRC和安全中心給了驗證方法。

六、漏洞修復

1 .更新到安全版本
Apache Tomcat 7.0.100
Apache Tomcat 8.5.51
Apache Tomcat 9.0.31
https://tomcat.apache.org/download-70.cgi
https://tomcat.apache.org/download-80.cgi
https://tomcat.apache.org/download-90.cgi
2.關閉AJP服務,修改Tomcat配置文件Service.xml,注釋掉
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3、配置ajp配置中的secretRequired跟secret屬性來限制認證





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM