1. 程式人生 > 實用技巧 >Tomcat put檔案上傳漏洞(CVE-2017-12615)

Tomcat put檔案上傳漏洞(CVE-2017-12615)

Tomcat put檔案上傳漏洞(CVE-2017-12615)

漏洞描述:

當Tomcat執行在Windows作業系統上,且啟用了HTTP PUT請求方法(將 readonly 初始化引數由預設值設定為 false),攻擊者將有可能可通過精心構造的攻擊請求上傳任意檔案,包括JSP型別的木馬。

影響範圍:

Apache Tomcat 7.0.0 - 7.0.81

環境準備:

虛擬機器: VMware

作業系統: Windows7

java環境(jdk 1.7.0-ea)

Tomcat版本(7.0.65)

漏洞復現

修改web.xml檔案, 開啟http的put方法(檔案路徑: tomcat\conf\web.xml):

修改完,重新啟動tomcat,訪問8080埠

用burp抓包, 攔截將GET改為PUT方法,嘗試直接上傳test.jsp檔案:

上傳失敗返回404
原因: Tomcat在某種程度上檢查了檔案字尾(無法直接編寫jsp)

利用檔案上傳繞過方式進行繞過
方式一: 利用Windows檔案流(::DATA)繞過

返回409

響應狀態碼 409 Conflict 表示請求與伺服器端目標資源的當前狀態相沖突。

衝突最有可能發生在對 PUT 請求的響應中。例如,當上傳檔案的版本比伺服器上已存在的要舊,從而導致版本衝突的時候,那麼就有可能收到狀態碼為 409 的響應。

願因: 這兒應該是版本衝突(猜測), 這個方式應該是可行的,參考時以實踐結果為標準

方式二: 直接在上傳檔案字尾名後加/繞過(Tomcat存在去掉最後/的特性,此方法影響所有的Apache Tomcat 版本

返回201, 成功建立檔案,訪問檔案,成功訪問(這裡可上傳一句話木馬)

方式三: 在上傳檔案字尾名後加上%20繞過

修復方案:

1.配置readonly為true(預設為true)
2.根據官方補丁升級最新版本