Apache Tomcat 中允許替換 JSP 代碼和獲取 Web 應用程序文件的漏洞

中國公司長亭科技的研究人員已經確定 脆弱性 (CVE-2020,1938)在 Apache Tomcat,Java Servlet、JavaServer Pages、Java 表達式語言和 Java WebSocket 技術的開源實現。 該漏洞的代號為 Ghostcat 和嚴重級別 (9.8 CVSS)。 在默認配置中,該問題允許通過向網絡端口 8009 發送請求,從 Web 應用程序目錄中讀取任何文件的內容,包括具有設置和應用程序源代碼的文件。

該漏洞還可以將其他文件導入到應用程序代碼中,如果應用程序允許將文件上傳到服務器,則允許在服務器上組織代碼執行(例如,攻擊者可以在通過圖片上傳表單獲取圖片)。 可以通過使用 AJP 處理程序向網絡端口發送請求來進行攻擊。 根據初步數據,網上 成立 超過 1.2 萬台主機通過 AJP 協議接受請求。

該漏洞存在於AJP協議中,並且 沒有叫 實施錯誤。 除了通過 HTTP(端口 8080)接受連接外,Apache Tomcat 默認允許通過 AJP 協議(Apache JServ 協議,端口 8009),它是一個性能優化的二進制等效 HTTP,通常在創建 Tomcat 服務器集群或加速與反向代理或負載平衡器上的 Tomcat 通信時使用。

AJP提供了訪問服務器上文件的標準功能,可以使用,包括獲取不被洩露的文件。 AJP 應該只能由受信任的服務器訪問,但實際上 Tomcat 的默認配置是在所有網絡接口上運行處理程序並在沒有身份驗證的情況下接受請求。 可以訪問任何 Web 應用程序文件,包括 WEB-INF、META-INF 的內容,以及通過 ServletContext.getResourceAsStream() 調用提供的任何其他目錄。 AJP 還允許您將 Web 應用程序的可訪問目錄中的任何文件用作 JSP 腳本。

這個問題從13年前Tomcat 6.x的分支發布開始就出現了。 除了直接Tomcat問題 影響 以及使用它的產品,例如 Red Hat JBoss Web Server (JWS)、JBoss Enterprise Application Platform (EAP),以及使用 春季靴. 類似漏洞 (CVE-2020-1745) 現在 在網絡服務器中 暗流在 Wildfly 應用服務器中使用。 在 JBoss 和 Wildfly 中,AJP 協議僅在 standalone-full-ha.xml、standalone-ha.xml 和 domain.xml 中的 ha/full-ha 配置文件中默認啟用。 在 Spring Boot 中,默認情況下禁用 AJP 支持。 不同的小組已經準備了十多個漏洞利用的工作示例(
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Tomcat 版本中修復的漏洞 9.0.31, 8.5.51 и 7.0.100 (維護分支 6.x 終止). 您可以在這些頁面上關注發行版中更新的外觀: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD的. 作為解決方法,如果不需要,您可以禁用 Tomcat AJP 連接器服務(將偵聽套接字綁定到本地主機或註釋掉連接器端口 =“8009”的行),或者 設置 如果服務用於與基於 mod_jk 和 mod_proxy_ajp 的其他服務器和代理交互(mod_cluster 不支持身份驗證),則使用“secret”和“address”屬性進行身份驗證訪問。

來源: opennet.ru

添加評論