CVE-2020-1938 Apache-Tomcat-Ajp漏洞復現


一、概述

       1.1漏洞編號:CVE-2020-1938

  1.2危險等級:高

       1.3描述

  2020年2月20日,國家信息安全漏洞共享平台(CNVD)發布關於Apache Tomcat的安全公告,Apache Tomcat文件包含漏洞是由於Tomcat默認開啟的AJP服務(8009端口)存在一處文件包含缺陷,攻擊者可構造惡意的請求包進行文件包含操作,進而讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,如:webapp 配置文件、源代碼等。

二、影響的版本

       Apache Tomcat 6

  Apache Tomcat 7 < 7.0.100

  Apache Tomcat 8 < 8.5.51

  Apache Tomcat 9 < 9.0.31

 

三、漏洞分析

       通過對源碼的分析,發現Tomcat在處理ajp協議時存在漏洞,可通過調用request.setAttribute為Tomcat設置任意request屬性。復現發現Tomcat ajp協議存在web目錄下任意文件讀取漏洞以及JSP文件包含漏洞。

  當ajp URI設置為非jsp路徑時,Tomcat會調用DefaultServlet處理,此時會導致web目錄任意文件讀取漏洞。

  當ajp URI設置為jsp路徑時,Tomcat會調用JspServlet處理,此時會導致JSP文件包含漏洞

四、復現步驟

環境介紹

       目標機win7(IP):192.168.91.132

       攻擊機kali(IP):192.168.91.128

       Tomcat版本:8.5.5

  注:順帶附上Tomcat各個版本下載鏈接:http://archive.apache.org/dist/tomcat/

4.1查看tomcat是否部署

 

4.2主機發現

 

4.3掃描端口(8009開放)

 

4.4下載讀取文件的poc

  Poc鏈接:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

 

4.5輸入參數並執行

  可以看到已經成功讀取了我們的文件信息

 

五、防御措施

       1.禁用AJP協議,在tomcat安裝路徑中找到/conf/server.xml文件,刪除或注釋下面這行代碼:<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />

       2.升級到tomcat最新版本,

       3.配置secret來設置AJP協議的認證憑證,如:<Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET"/>

六、危害

       攻擊者利用該漏洞可通過構造特定參數,讀取服務器webapp下的任意文件。若服務器端同時存在文件上傳功能,攻擊者可進一步實現遠程代碼的執行

 


免責聲明!

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



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