JAVA防止任意文件上传,Tomcat任意文件上传漏洞以及环境配置
0x00
安裝Tomcat需要配置Java環境,因為Tomcat好像是用Java寫的,主要是需要用到jre
0x01
在Windows下Tomcat的相關配置:
Tomcat版本:7.0.79
Tomcat運行環境:JDK 8.0
在運行Tomcat之前,需要配置環境變量
環境變量1:在系統變量中新建一個,變量名:JAVA_HOME,變量值:安裝JDK8.0的目錄路徑
image.png
環境變量2:新建一個系統變量,變量名是CATALINA_HOME,變量值是Tomcat的目錄路徑
image.png
環境變量3:點擊系統變量中的Path,然后添加一段%JAVA_HOME%\bin
image.png
TIPS:這里的路徑都需要寫絕對路徑
檢測是否配置成功:
進入Tomcat文件夾下的bin文件夾中,雙擊startup.bat,然后訪問127.0.0.1:8080,出現tom貓的網頁代表成功。
image.png
關于Linux下配置Tomcat 傳送門
0x02
漏洞影響的tomcat版本為tomcat7.0.0-7.0.81版本
漏洞環境配置:
Tomcat文件夾下的/conf/web.xml文件,打開在114行插入以下內容
readonly
false
image.png
修改完成后需要重啟Tomcat,重啟的方式是雙擊Tomcat目錄下的bin目錄下的shutdown.bat,在點擊start.bat。
Tomcat遠程代碼執行漏洞的編號是CVE-2017-12615
默認情況下readonly是true,并且如果是true的話,那么PUT和DELETE方法是被拒絕的。
當我們將readonly參數設置為false時,即可通過PUT方式創建一個JSP文件,并可以執行任意代碼。
漏洞復現:
打開burp,準備進行抓包,訪問Tomcat,抓包,然后放到repeater里面方便實驗。
image.png
修改數據,上傳文件
image.png
結果返回404,請求被攔截
image.png
1、NTFS文件流
2、文件名相關限制(如Windows中文件名不能以空格結尾)來繞過限制
繞過的方法可以在文件名后面加斜杠/也可以加%20空格。
加上%20(空格的URL編碼),返回201,上傳成功
image.png
去虛擬機里看一下
前排提示:Tomcat的網站根目錄是tomcat/webapps/ROOT,上傳的文件就是在這個ROOT目錄底下
image.png
嘗試訪問成功
image.png
這里如果一直不成功的話可能是你修改包數據有問題
image.png
這里斜杠也是要刪掉的,剛開始我也是一直返回404,不刪掉是有問題的。
::$DATA,在文件名后面加這個也能繞過
0x03
防御方法:
不要修改readonly默認的true屬性,一旦設為false就是允許用戶使用PUT和deleate方法
更加詳細的資料和payload:
詳細資料
總結
以上是生活随笔為你收集整理的JAVA防止任意文件上传,Tomcat任意文件上传漏洞以及环境配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word样式和多级列表设置技巧(二)
- 下一篇: IE8中文件下载不兼容问题