文章目錄
- 0x00 漏洞介紹
- 0x01影響版本
- 0×02原理分析
- 0×04 環境搭建
- 0×04 漏洞復現-(任意上傳檔案)
- 方法一 在檔案名后面添加斜杠 / 來進行繞過
- 方法二: 在檔案名后面添加 %20 來進行繞過
- 方法三:在檔案名后面添加 ::$DATA來進行繞過
- 方法四:上傳哥斯特生產的jsp
- 0x05 漏洞修護
0x00 漏洞介紹
2017年9月19日,Apache Tomcat官方確認并修復了兩個高危漏洞,漏洞CVE編號:CVE-2017-12615和CVE-2017-12616,該漏洞受影響版本為7.0-7.80之間,在一定條件下,攻擊者可以利用這兩個漏洞,獲取用戶服務器上 JSP 檔案的源代碼,或是通過精心構造的攻擊請求,向用戶服務器上傳惡意JSP檔案,通過上傳的 JSP 檔案 ,可在用戶服務器上執行任意代碼,從而導致資料泄露或獲取服務器權限,存在高安全風險
0x01影響版本
Apache Tomcat 7.0.0 - 7.0.81
0×02原理分析
Tomcat 的 Servlet 是在 conf/web.xml 配置的,通過組態檔可知,當后綴名為 .jsp 和 .jspx 的時候,是通過 JspServlet 處理請求的:
而其他的靜態檔案是通過 DefaultServlet 處理的:
可以得知,“1.jsp ”(末尾有一個和空格)并不能匹配到 JspServlet,而是會交由 DefaultServlet 去處理,當處理 PUT 請求時:
會呼叫 resources.bind:
dirContext 為 FileDirContext:
呼叫 rebind 創建檔案:
又由于 Windows 不允許“ ”作為檔案名結尾,所以會創建一個 .jsp 檔案,導致代碼執行,
0×04 環境搭建
cd /vulhub-master/tomcat/CVE-2017-12615
docker-compose up -d



0×04 漏洞復現-(任意上傳檔案)
方法一 在檔案名后面添加斜杠 / 來進行繞過


方法二: 在檔案名后面添加 %20 來進行繞過


方法三:在檔案名后面添加 ::$DATA來進行繞過



方法四:上傳哥斯特生產的jsp


0x05 漏洞修護
1、配置readonly值為True或注釋引數,禁止使用PUT方法并重啟tomcat, 注意:如果禁用PUT方法,對于依賴PUT方法的應用,可能導致業務失效,
2.當然也可以在前端(例如WAF)上阻止PUT和DELETE請求,
3.只能防止攻擊者上傳JSP,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302977.html
標籤:其他
下一篇:Nmap入門與進階
