Tomcat put檔案上傳漏洞(CVE-2017-12615)
阿新 • • 發佈:2020-11-30
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.根據官方補丁升級最新版本