文件上傳限制繞過的原理以及方法總結
阿新 • • 發佈:2018-06-16
總結 IT img java eight turn 頁面 ima 控制
0x00 概述
6666666
0x01 客戶端檢測繞過(js檢測)
- 檢測原理
在客戶端通過如下的javascript代碼來檢測用戶提交的文件是否合法:
1 <script type="text/javascript"> 2 function checkFile() { 3 var file = document.getElementsByName(‘upload_file‘)[0].value; 4 if (file == null || file == "") { 5 alert("請選擇要上傳的文件!");6 return false; 7 } 8 //定義允許上傳的文件類型 9 var allow_ext = ".jpg|.png|.gif"; 10 //提取上傳文件的類型 11 var ext_name = file.substring(file.lastIndexOf(".")); 12 //判斷上傳文件類型是否允許上傳 13 if (allow_ext.indexOf(ext_name) == -1) { 14 var errMsg = "該文件不允許上傳,請上傳" + allow_ext + "類型的文件,當前文件類型為:" + ext_name;15 alert(errMsg); 16 return false; 17 } 18 } 19 </script>
- 如何判斷是否是客戶端js檢測
- 繞過方法
由於用來驗證文件合法性的js程序在我們客戶端,所以對於我們來說,這個驗證程序是可控制的,能夠很輕易的就繞過,具體能夠繞過的方法如下:
1. 添加允許上傳的文件類型,使自己想要上傳的會見類型為合法
-這是一個簡單的上傳頁面
2、刪除對js驗證腳本的調用,使其不能對上傳的文件類型做檢測,從而達到繞過
3、利用burpsuite抓包,修改文件類型進行繞過
h1
6666666
h1
6666666
文件上傳限制繞過的原理以及方法總結